1

zipファイルを開いて、パスワードと256 AES暗号化テキストファイルをストリームに抽出しようとしています。このストリームは、テキストのコピーをドライブに保存せずに読み取ることができます。私が正しくやりたいことを理解していれば、ストリームを使用することでそれを達成できます。私はコードの経験があまりないので、以下のDontNetZipサイトで見つけた例を使用しています。問題は2つあり、処理時に2つのエラーがスローされます。誰かがこれらを手伝ってくれることを期待していました。

13行目に最初のエラーが発生しました-"UsingsAs CrcCalculatorStream=e1.OpenReader"エラーは'オブジェクト参照がオブジェクトのインスタンスに設定されていません。'私はクリアして新しいものを試しましたが、それでもその行でクラッシュします。

2 2番目のエラーはループの後の行にあります-「If(s.Crc32 <> e1.Crc32)Then」であり、エラーはs.Crc32の下の波状の行であり、Crc32はCrcCalculatorStreamのメンバーではないことを示しています。 Ionic.zip.zipEntryのメンバーではないe1.Crc32での同様のエラー

コードは、このリンクhttp://cheeso.members.winisp.net/DotNetZipHelp/html/4ef6405c-33ff-a8aa-1731-def3ec5cac24.htmからコピーされたものです。

誰かが私がコードを通り抜けて、Im afterの結果を得ることができるかどうかを確認するのを手伝ってもらえますか?つまり、テキストファイルの内容を文字列に入れて、それを読むことができるようにすることです

PS私は実際のプログラムでファイルへの参照と正しいzip名を編集しましたが、追加するのはパスワードだけです。

ありがとうございました

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

使用を終了する

4

1 に答える 1

2

私もそれを整理することができました、私はそれが誰かに役立つかもしれないと思っていました。

文字列としての薄暗いstr

                    Using s As Ionic.Crc.CrcCalculatorStream = e.OpenReader(Password)
                        Dim sr As StreamReader = New StreamReader(s)
                        str = sr.ReadToEnd()
                    End Using
于 2012-07-12T20:44:52.883 に答える