我正在使用标准的VB.NET库来提取和压缩文件。它的工作原理也是如此,但是当我必须提取文件时,问题就出现了。
我使用的代码
进口:
Imports System.IO.Compression
方法我崩溃时调用
ZipFile.ExtractToDirectory(archivedir, BaseDir)
archivedir和BaseDir也已设置,实际上如果没有要覆盖的文件,它就可以工作。问题正好出现了。
如何在不使用第三方库的情况下覆盖提取中的文件?
(注意我使用的是参考System.IO.Compression和System.IO.Compression.Filesystem)
由于文件放在已有文件的多个文件夹中,我会避免手动
IO.File.Delete(..)
答案 0 :(得分:15)
使用覆盖为真的ExtractToFile来覆盖与目标文件同名的现有文件
Dim zipPath As String = "c:\example\start.zip"
Dim extractPath As String = "c:\example\extract"
Using archive As ZipArchive = ZipFile.OpenRead(zipPath)
For Each entry As ZipArchiveEntry In archive.Entries
entry.ExtractToFile(Path.Combine(extractPath, entry.FullName), True)
Next
End Using