gpt4 book ai didi

mono - SharpZipLib 的 FastZip 不会在 Mac 上解压缩目录

转载 作者:行者123 更新时间:2023-12-03 18:39:15 25 4
gpt4 key购买 nike

我在使用 Mono 的 Mac 上使用以下代码来解压缩 zip 文件。 zip 文件包含目录下的条目(例如 foo/bar.txt)。但是,在解压后的目录中,FastZip 不是创建目录 foo 和文件 bar.txt,而是创建文件 foo\bar.txt .我该如何解决这个问题?

FastZip fz = new FastZip();
string filePath = @"path\to\myfile.zip";

fz.ExtractZip(filePath, @"path\to\unzip\to", null);

这会在 path\to\unzip\to 中创建一个文件 foo\bar.txt

最佳答案

在这种情况下显然不能使用 FastZip 所以我最终编写了自己的解压缩机制:

string filePath = @"path\to\myfile.zip";
string unzipDir = @"path\to\unzip\to";

using (var zipFile = new ZipFile(filePath))
{
foreach (var zipEntry in zipFile.OfType<ZipEntry>())
{
var unzipPath = Path.Combine(unzipDir, zipEntry.Name);
var directoryPath = Path.GetDirectoryName(unzipPath);

// create directory if needed
if (directoryPath.Length > 0)
{
Directory.CreateDirectory(directoryPath);
}

// unzip the file
var zipStream = zipFile.GetInputStream(zipEntry);
var buffer = new byte[4096];

using (var unzippedFileStream = File.Create(unzipPath))
{
StreamUtils.Copy(zipStream, unzippedFileStream, buffer);
}
}
}

关于mono - SharpZipLib 的 FastZip 不会在 Mac 上解压缩目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15776842/

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