Я пытаюсь открыть zip-файл и извлечь пароль и зашифрованный текстовый файл 256 AES в поток, который я могу прочитать БЕЗ размещения копии текста на диске. Если я правильно понимаю, что я хочу сделать, использование потока сделает это. Я не очень разбираюсь в коде, поэтому я использую пример, который я нашел на сайте DontNetZip, который находится ниже. Проблема в 2 раза, выдает 2 ошибки при обработке, я надеялся, что кто-то может помочь с этими.
1 первая ошибка возникает в 3-й строке — «Использование s As CrcCalculatorStream = e1.OpenReader». Ошибка: «Ссылка на объект не указывает на экземпляр объекта. ' Я пробовал declearing и new, и все равно он падает на этой строке.
2 вторая ошибка находится в строке после цикла - "If (s.Crc32 ‹> e1.Crc32) Then" и ошибка представляет собой волнистую строку под s.Crc32 и говорит о том, что Crc32 не является членом CrcCalculatorStream , a аналогичная ошибка в e1.Crc32, который не является членом Ionic.zip.zipEntry
Код скопирован с этой ссылки http://cheeso.members.winisp.net/DotNetZipHelp/html/4ef6405c-33ff-a8aa-1731-def3ec5cac24.htm
Может ли кто-нибудь помочь мне пройти через код, чтобы увидеть, могу ли я получить результат, который Im после, то есть иметь содержимое текстового файла в строке, чтобы я мог его прочитать
PS Я в своей реальной программе редактировал ссылки на файл и правильное имя зипа, единственное дополнение - пароль.
Спасибо
Using zip As New ZipFile(ZipFileToRead)
Dim e1 As ZipEntry = zip.Item("Elevation.mp3")
Using s As Ionic.Zlib.CrcCalculatorStream = e1.OpenReader(password)
Dim n As Integer
Dim buffer As Byte() = New Byte(4096) {}
Dim totalBytesRead As Integer = 0
Do
n = s.Read(buffer, 0, buffer.Length)
totalBytesRead = (totalBytesRead + n)
Loop While (n > 0)
If (s.Crc32 <> e1.Crc32) Then
Throw New Exception(String.Format("The Zip Entry failed the CRC Check. (0x{0:X8}!=0x{1:X8})", s.Crc32, e1.Crc32))
End If
If (totalBytesRead <> e1.UncompressedSize) Then
Throw New Exception(String.Format("We read an unexpected number of bytes. ({0}!={1})", totalBytesRead, e1.UncompressedSize))
End If
End Using
Завершить использование