2009-05-25 9 views

答えて

1

は、私はVB.NETでプログラムする方法がわからないSharpZipLib

+1

で行わDotNetZipは、積極的にCodePlexのに向上し、SharpZipLibにわたっていくつかの方法が簡素化されています。 –

0

を見てください。しかし、検索で興味深いリンクが明らかになった:Zip Compression VB.NET Examples。それがあなたに役立つことを願っています。

+0

注意:例は、市販のChilkat ZIPライブラリに依存しています。 – Cheeso

16

DotNetZipは、VB.NETやその他の.NET言語でZIPファイルを処理するための、使いやすいフリーのオープンソースライブラリです。

いくつかのサンプルVB.NETコード、zipファイルを作成するには、ファイルを一つずつ追加:

Dim ZipToCreate As String = "ex1.zip" 
Dim DirectoryToZip As String = "c:\temp" 
Using zip As ZipFile = New ZipFile 
    Dim filenames As String() = System.IO.Directory.GetFiles(DirectoryToZip) 
    Dim filename As String 
    For Each filename In filenames 
     zip.AddFile(filename) 
    Next 
    zip.Save(ZipToCreate) 
End Using 

あるいは、グループ内のファイルを追加する:

Dim ZipToCreate As String = "ex1.zip" 
Dim DirectoryToZip As String = "c:\temp" 
Dim filenames As String() = System.IO.Directory.GetFiles(DirectoryToZip) 
Using zip As ZipFile = New ZipFile 
    zip.AddFiles(filenames, "temp") 
    zip.Save(ZipToCreate) 
End Using 

または、コードにzipファイルを抽出するために

Using zip As ZipFile = New ZipFile 
    zip.AddDirectory(directory) 
    zip.Save(targetZip) 
End Using 

コード:全体のディレクトリまたはフォルダをzip化

をプログレスバーと
Dim ZipFileToExtract As String = "c:\foo.zip" 
    Using zip As ZipFile = ZipFile.Read(ZipFileToExtract) 
     Dim e As ZipEntry 
     For Each e In zip 
      ' can conditionally extract here, ' 
      ' based on name, size, date, whatever.' 
      e.Extract 
     Next 
    End Using 

エキス:

Imports Ionic.Zip 

Module SimpleUnzip 
    Public Sub Unzip(ByVal ZipToUnpack As String, ByVal ExtractDirectory As String) 
    Try 
     Using zip As ZipFile = ZipFile.Read(ZipToUnpack) 
     Form1.ProgressBar1.Maximum = zip.Entries.Count 
     Dim entry As ZipEntry 
     For Each entry In zip 
      Form1.Label1.Text = entry.FileName 
      entry.Extract(ExtractDirectory, ExtractExistingFileAction.OverwriteSilently) 
      Form1.ProgressBar1.Value = Form1.ProgressBar1.Value + 1 
      ' sleep because it's too fast otherwise. 
      System.Threading.Thread.Sleep(50) 
     Next 
     Form1.ProgressBar1.Value = 0 
     Form1.Label1.Text = "Done" 
     End Using 
    Catch ex1 As Exception 
     Form1.Label1.Text = ("Exception: " & ex1.ToString()) 
    End Try 
    End Sub 
End Module 

DotNetZipを使用すると、ASP.NETまたはWindowsフォームでプログレスバーに電源を供給できるので、保存、または抽出、読書のためのprogressイベントがあります。パスワードで保護されたzipファイル、Unicode、ZIP64、および自己解凍型アーカイブを実行します。 WinZip、WinRAR、Windowsエクスプローラ、Pkunzipなど、他のすべてのzipツールと互換性があります。たくさんのコード例を含む良いヘルプファイル(online version here)があります。 samples available for downloadもあります。

+0

私はいつもSharpZipLibを使ってきましたが、DotNetZipを試してみました。それは素晴らしいです。はるかに使いやすく、セットアップに数分かかりました。ありがとうCheeso! – Urbycoz

0

Rebex ZIPコンポーネントを使用できます。 1行のコードで

' add content of the local directory C:\Data\ ' 
' to the directory \Data-2010 (within the ZIP archive) ' 
' (ZIP archive C:\archive.zip doesn't have to exist) 
ZipArchive.Add("C:\archive.zip", "C:\Data\*", "\Data-2010") 

シンプル解凍:

' extract all *.TXT files from the directory \Data-2010 (within the ZIP file) ' 
' to the existing local directory C:\Data ' 
ZipArchive.Extract("C:\archive.zip", "\Data-2010\*.html", "C:\Data") 

1行のコードで

シンプルビュンファイル:ここで

は、あなたが求めているの操作のいくつかのサンプルですより多くのサンプルはhereで見つけることができます。

0

シェルば、ワシントン州ラ二行

Dim zipcmd as String = "zip -r C:\directory\of\my\folder C:\directory\of\my\zip" 
Shell("cmd.exe /c" + zipcmd1, AppWinStyle.Hide, True) 
関連する問題