gpt4 book ai didi

compression - SharpLibZip : Add file without path

转载 作者:行者123 更新时间:2023-12-03 21:09:28 25 4
gpt4 key购买 nike

我正在使用以下代码,使用 SharpZipLib library,将文件添加到 .zip 文件,但每个文件都以其完整路径存储。我只需要将文件存储在 .zip 文件的“根”中。

string[] files = Directory.GetFiles(folderPath);
using (ZipFile zipFile = ZipFile.Create(zipFilePath))
{
zipFile.BeginUpdate();
foreach (string file in files)
{
zipFile.Add(file);
}
zipFile.CommitUpdate();
}

我在提供的文档中找不到任何关于此选项的信息。由于这是一个非常受欢迎的图书馆,我希望阅读此书的人可能有所了解。

最佳答案

我的解决方案是设置 NameTransform ZipFile 的对象属性到 ZipNameTransform与其 TrimPrefix设置为文件的目录。这会导致删除条目名称的目录部分,即完整的文件路径。

public static void ZipFolderContents(string folderPath, string zipFilePath)
{
string[] files = Directory.GetFiles(folderPath);
using (ZipFile zipFile = ZipFile.Create(zipFilePath))
{
zipFile.NameTransform = new ZipNameTransform(folderPath);
foreach (string file in files)
{
zipFile.BeginUpdate();
zipFile.Add(file);
zipFile.CommitUpdate();
}
}
}

很酷的是 NameTransform 属性的类型是 INameTransform ,允许自定义名称转换。

关于compression - SharpLibZip : Add file without path,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/198285/

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