Я пытаюсь повторить эту функцию PHP с VB.net:ReadAllText это возвращает только первую строку
function getGiantsModMD5Hash($modFile)
{
$info = pathinfo($modFile);
// Add mod zip data
$fileContent = file_get_contents($modFile);
// Add basefile name string without extension
$fileContent .= basename($modFile, '.' . $info['extension']);
return md5($fileContent);
}
Из моего понимания функции FileSystem.ReadAllText наиболее эквивалентна функции file_get_contents в PHP. Но когда я использую его, он не работает, кажется, что он возвращает только первую строку. Я попытался добавить Encoding.Default, Encoding.UTF8 и т. Д., Ни один из них не работает.
Вот мой код для чтения файла (в данном случае это файл .zip)
Dim createHash As String
createHash = My.Computer.FileSystem.ReadAllText(modsPath & modName & ".zip") & modName
Form1.TextBox1.Text = createHash ' Show result of ReadAllText to my eye
Любая идея, как я могу получить эту работу?
UPDATE:
Это "формат" данных мне нужно:
PKHr�F���Q��U brand.dds훻
�1�W�4���o`ao�al��ZX��C|@��-A��)���b��:d�39's�hVQ9�G&�ɹ��3��]�q��j�:{����
�S�������a�e���ߵ[7����]�
... И так далее
Это то, что он выглядит, когда я печать результат функции PHP file_get_contents. (Файл является .zip)
Что мне нужно сделать, это взять эту информацию и добавить имя файла без расширения файла к нему и рассчитать хеш-файл MD5, поэтому я могу сравнить это значение с уже существующим MD5 хэш.
Я уже много часов искал поиски решения. Кажется, так просто с PHP, но почти невозможно воспроизвести с помощью VB.NET? :(
Посмотрите http://stackoverflow.com/questions/18173752/c-sharp-file-readalltext-only-reads-first-char – Linesofcode
Если это zip-файл, ReadAllText не будет работать правильно. Этот метод предназначен для чтения текстовых файлов, а не двоичных файлов. –
Имеет ли в вашем TextBox свойство Multiline значение True? – Blackwood