如何在vb.net 2005中压缩文件

如何在vb.net 2005中压缩文件,vb.net,file,zip,Vb.net,File,Zip,如何在vb.net 2005中压缩文件(任何文件或文件夹)?看一看我不知道如何在vb.net中编程。然而,搜索显示了一个有趣的链接:。我希望它对您有用。您可以使用库。是一个易于使用、免费的开源库,用于处理VB.NET和其他.NET语言中的ZIP文件 一些示例VB.NET代码,用于创建zip文件,一次添加一个文件: Dim ZipToCreate As String = "ex1.zip" Dim DirectoryToZip As String = "c:\temp" Using zip As

如何在vb.net 2005中压缩文件(任何文件或文件夹)?

看一看

我不知道如何在vb.net中编程。然而,搜索显示了一个有趣的链接:。我希望它对您有用。

您可以使用库。

是一个易于使用、免费的开源库,用于处理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
或者,编码以压缩整个目录或文件夹:

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窗体中启动进度条。它提供密码保护的zip文件、Unicode、ZIP64和自解压归档。它生成的zip文件与所有其他zip工具(WinZip、WinRAR、Windows资源管理器、Pkunzip等)兼容。有一个很好的帮助文件()和大量代码示例。也有

您可以使用我们的组件

以下是您要求的一些操作示例:

用一行代码简单地压缩文件:

' 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")
只需一行代码即可轻松解压:

' 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")

可以找到更多的样品。

将其脱壳,分两行完成

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

注意:示例依赖于商业Chilkat ZIP库。DotNetZip正在CodePlex上积极改进,并简化了SharpZipLib的一些方法。我过去一直使用SharpZipLib,但我刚刚尝试了DotNetZip,这非常棒。更容易使用,并且花了我几分钟来设置。谢谢你!