VB.Net创建一个zip文件并从zip文件中提取

时间:2016-08-10 20:49:45

标签: vb.net

我有一个文件" C:\ Users \ Wangui Kamande \ Desktop \ social.txt"我想将其压缩成.zip文件的位置" C:\ Users \ Wangui Kamande \ Desktop"。 我从微软网站获得了以下代码,但我不太清楚如何解决这个问题。 是文件" C:\ Users \ Wangui Kamande \ Desktop \ social.txt"必须在一个文件夹中?

mircosoft网站的代码是:

Private Sub btnCompress_Click(sender As Object, e As EventArgs) Handles btnCompress.Click
        Dim startPath As String = "c:\example\start"
        Dim zipPath As String = "c:\example\result.zip"
        Dim extractPath As String = "c:\example\extract"
        ZipFile.CreateFromDirectory(startPath, zipPath)
        ZipFile.ExtractToDirectory(zipPath, extractPath)
End Sub

1 个答案:

答案 0 :(得分:2)

您希望ZipArchive.CreateEntryFromFile扩展方法将单个文件添加到zip ...

Using zip = ZipFile.Open("C:\Users\Wangui Kamande\Desktop\social.zip", ZipArchiveMode.Create)
    zip.CreateEntryFromFile("C:\Users\Wangui Kamande\Desktop\social.txt", "social.txt")
End Using

要从zip中提取单个文件,有ZipArchiveEntry.ExtractToFile扩展方法,但首先必须在zip中找到相应的条目。您可以使用LINQ按名称查找条目,如下所示:

Using zip = ZipFile.Open("C:\Users\Wangui Kamande\Desktop\social.zip", ZipArchiveMode.Read)
    Dim entry = zip.Entries.Single(Function(x) x.Name = "social.txt")
    entry.ExtractToFile("C:\Users\Wangui Kamande\Desktop\social2.txt", True)
End Using

ExtractToFile的第二个参数是可选的,它指定是否覆盖现有文件。