我在 VB.NET 创建了 à Zip 制造商,但我有这个错误:
只要以前创建的条目仍处于打开状态,就无法创建条目。
(译自法文:Impossible de créer des entrées tant que les entrées créées précédemment sont toujours ouvertes(
我的代码是:
将文件存档调暗为 FileStream = New FileStream(My.Settings.archive_path, FileMode.CreateNew( 将存档调暗为 ZipArchive = New ZipArchive(filearchive, ZipArchiveMode.Create( 对于 FileIO.FileSystem.GetFiles(My.Settings.contacts_path( 中的每个文件 将 crentry 调暗为 ZipArchiveEntry = 存档。创建条目(文件( 文件存档。CopyTo(crentry.打开((( 进度条1.增量(1( 标签3.文本 = 进度条1.值.到字符串 + " %" 接下来
,我在VS 2010中使用.NET Framework 4.5,并在我的类中导入了System.IO.Compression
有人可以帮我吗?
执行所需操作的代码可能比这简单得多。引用System.IO.Compression.dll和System.IO.Compression.FileSystem.dll然后执行以下操作:
Using archive = ZipFile.Open(My.Settings.archive_path, ZipArchiveMode.Create)
For Each filePath In Directory.EnumerateFiles(My.Settings.contacts_path)
archive.CreateEntryFromFile(filePath, Path.GetFileName(filePath))
'...
Next
End Using
这将仅使用文件名命名每个条目。如果需要完整的文件路径,请省略Path.GetFileName
调用。
您还可以查看ZipFile.CreateFromDirectory
方法,看看它是否会在单个调用中执行您想要的操作。