我有一个文件" 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
答案 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
的第二个参数是可选的,它指定是否覆盖现有文件。