gpt4 book ai didi

c# - 无法删除由 SharpZipLib (FastZip) 创建的 Zip 文件

转载 作者:行者123 更新时间:2023-11-30 20:14:34 24 4
gpt4 key购买 nike

我正在使用 SharpZipLib 中的 FastZip 类创建一个 zip 文件,一旦关闭程序,我就无法删除该文件,因为:

“无法删除 zip.zip:它正在被其他人或程序使用。请关闭所有可能正在使用该文件的程序,然后重试。”

生成文件的代码如下:

fZip.CreateEmptyDirectories = true;
fZip.CreateZip(filesPath + "\\" + this.zipName, filesPath, false, this.zipFilter);

我尝试使用:

            using (FastZip fZip = new FastZip())
{
try
{
fZip.CreateEmptyDirectories = true;
fZip.CreateZip(filesPath + "\\" + this.zipName, filesPath, false, this.zipFilter);
}
catch (Exception)
{
}
}

但它不会转换为 iDisposable

最佳答案

看起来这可能是 SharpZipLib 的一个错误。 FastZip.CreateZip 方法具有三个重载,其中两个重载使用 File.Create,例如:

CreateZip(File.Create(zipFileName), // ...

它似乎没有关闭流,所以你最好使用:

string zipFileName = System.IO.Path.Combine(filesPath, this.zipName);
using (Stream stream = File.Create(zipFileName))
{
fZip.CreateZip(stream, filesPath, false, this.zipFilter, null);
stream.Close();
}

从技术上讲,您不需要在 using block 中调用 Close,但我喜欢明确说明这一点。

关于c# - 无法删除由 SharpZipLib (FastZip) 创建的 Zip 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/340274/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com