1
A
回答
2
的.NET Framework 4.5已经ZipFile
类可为你做这个。此代码应该让你开始:
Dim zipPath As String = "Sample.zip"
Using archive = ZipFile.Open(zipPath, ZipArchiveMode.Read)
Dim entry = archive.GetEntry("MyFile.pdf")
Using reader As New BinaryReader(entry.Open())
System.IO.File.WriteAllBytes("MyFile.pdf", ReadAllBytes(reader))
End Using
End Using
ReadAllBytes()
是提取从二进制流中的所有字节的一个辅助方法:
Public Shared Function ReadAllBytes(reader As BinaryReader) As Byte()
Const bufferSize As Integer = 4096
Using ms As New MemoryStream()
Dim buffer(bufferSize) As Byte
Dim count As Integer
Do
count = reader.Read(buffer, 0, buffer.Length)
If count > 0 Then ms.Write(buffer, 0, count)
Loop While count <> 0
Return ms.ToArray()
End Using
End Function
确保您使用.NET Framework 4.5或以上,你已包括对System.IO.Compression
和System.IO.Compression.FileSystem
的引用。
0
尝试用这个代码的DotNetZip
Using zip As ZipFile = ZipFile.Read(ExistingZipFile)
Dim e As ZipEntry = zip("DocumentToFind.txt")
e.Extract(OutputStream)
End Using
的帮助,否则,你可以以这种方式使用ZipArchiveClass
Using zip As ZipArchive = ZipFile.Open(zipfile, ZipArchiveMode.Read)
Dim file = zip.Entries.Where(Function(x) x.Name = "fileToFind")
If file IsNot Nothing Then
file.ExtractToFile("yourFile")
End If
末使用
0
这将允许您通过线
Dim zipPath As String = "ZIP FILE LOCATION"
Using zipStream = New FileStream(last_pafx23_open, FileMode.Open)
Using archive = New ZipArchive(zipStream, ZipArchiveMode.Read)
For Each ent In archive.Entries
MsgBox(ent.ToString)
Using stream = ent.Open()
Using reader = New StreamReader(stream)
While Not reader.EndOfStream
MsgBox(reader.ReadLine)
End While
End Using
End Using
Next
End Using
End Using
-1
读从一个zip线txt文件跳过BinaryReader在W/ReadAllBytes()辅助函数,使用ExtractToFile()代替:
Imports System.IO.Compression
Using archive = ZipFile.Open("Sample.zip", ZipArchiveMode.Read)
Dim entry = archive.GetEntry("MyFile.pdf")
If entry IsNot Nothing then entry.ExtractToFile("MyFile.pdf")
End Using
仍当然需要参考System.IO.Compression
和System.IO.Compression.FileSystem
。
相关问题
- 1. java:从目录中获取.zip文件
- 2. 如何从java文件夹中获取单个文件?
- 3. 从zip中提取文件
- 4. python从zip文件夹中获取文件夹名称列表
- 5. 从一个目录中读取ZIP文件中的单个文件
- 6. 如何从“.zip”文件中读取所有“.java”文件
- 7. 如何使用Lua从zip文件中提取文件?
- 8. 如何从jar文件中提取zip文件
- 9. Ant从一个zip文件中读取一个属性文件
- 10. 如何用DotNetZip读取zip文件内的文件夹内的单个文件?
- 11. 从ZIP文件获取字节[]
- 12. 从zip文件获取模块?
- 13. 如何从Zip文件读取评论?
- 14. 如何使用Perl的Archive :: Zip从ZIP压缩文件中提取单个文件?
- 15. 如何使用codeigniter从zip文件夹中获取所有文件名?
- 16. Nodejs从ZIP提取文件
- 17. 如何获取文件夹内的文件是zip档案
- 18. PowerShell从zip文件中提取17个文件夹深
- 19. SSIS如何提取多个.zip文件到多个文件夹
- 20. 从多个文件创建zip文件
- 21. 从非公开文件夹获取zip文件(php)
- 22. 如何从两个.doc文件创建一个.zip文件?
- 23. 如何从ZIP文件读取文件到Java内存?
- 24. 如何从zip文件读取文件属性..?
- 25. 如何在C#中提取ZIP文件
- 26. 提取文件夹中的Zip文件
- 27. 修改ZIP文件中的单个文本文件,在PHP中
- 28. 从SOAP附件中获取ZIP文件损坏
- 29. 如何从远程存档文件中提取单个文件?
- 30. PHP从zip文件目录中读取文本文件
我不能评论顶部的答案,我的答案在这里是一个简化版本。尽管如此,当我希望从zip压缩文件中提取项目而不必首先将其写入磁盘时,我确实在该答案中称赞了帮助函数。 – 2016-12-16 22:22:12
不编译 – stigzler 2017-08-19 08:26:02