2

zip ファイルである .exe に埋め込まれたリソースがあり、リソースから移動して特定のフォルダーに解凍したいと考えています。

Private Sub btnNext_Click(sender As Object, e As EventArgs) Handles btn_Install.Click
    Dim Dir_File As String = "C:\FTB"
    Dim Dir_Temp As String = "C:\Temp\Unleashed.zip"

    System.IO.File.WriteAllBytes(Dir_Temp, My.Resources.Unleashed)

    Dim directorySelected As DirectoryInfo = New DirectoryInfo(Dir_Temp)

End Sub

しかし、.zip ファイルをディレクトリに抽出する方法がありません。したがって、今必要なのは、実際に .zip を抽出する方法だけです。

私はこれを試しました:

Dim directorySelected As DirectoryInfo = New DirectoryInfo(Dir_Temp)
    For Each fileToDecompress As FileInfo In directorySelected.GetFiles("Unleashed.zip")
        Using OriginalFileStream As FileStream = fileToDecompress.OpenRead()
            Using decompressedFileStream As FileStream = File.Create(Dir_File & "\Unleashed")
                Using decompressionStream As GZipStream = New GZipStream(OriginalFileStream, CompressionMode.Decompress)
                    decompressionStream.CopyTo(decompressedFileStream)
                End Using
            End Using
        End Using
    Next

しかし、マジック ナンバーに関するエラーが表示されるだけでした。どんな助けでも大歓迎です。

4

3 に答える 3

1

NET 4.5 を使用できる場合は、System.IO.Compression名前空間内に出荷され、zip ファイルの操作に必要なすべてのものがあります。

sharpziplibzip 操作については、私が多くのプロジェクトで成功を収めているように、サードパーティのライブラリの使用を検討できます。

これらのサンプルをご覧ください: https://github.com/icsharpcode/SharpZipLib/wiki/Zip-Samples

于 2013-08-13T10:07:57.307 に答える