gpt4 book ai didi

c# - 如何使用 SharpZipLib 库仅压缩文件而不压缩文件夹? (C#)

转载 作者:行者123 更新时间:2023-12-03 20:33:03 26 4
gpt4 key购买 nike

我使用以下代码创建一个 zip 文件:

var files = Directory.GetFiles(targetPath);
var zip = ZipFile.Create(targetPath + "/myzip.zip");
zip.BeginUpdate();
foreach (var file in files) zip.Add(file, CompressionMethod.Deflated);
zip.CommitUpdate();
zip.Close();

我得到以下存档结构:

myzip.zip
- Folder1
- Folder2
- File1.txt
- File2.txt
- File3.txt

但我需要:

myzip.zip
- File1.txt
- File2.txt
- File3.txt

请帮忙。

最佳答案

看看 SharpZipLib 代码,ZipFile 类中有这个方法,它似乎可以实现您想要的功能:

public void Add(IStaticDataSource 数据源,字符串条目名称, CompressionMethod 压缩方法)

您只需从文件中获取 IStaticDataSource,并创建适当的 EntryName(不包括目录路径),即搜索最后一个目录分隔符 Path.DirectorySeparatorChar Fieldfile 字符串中,其后的任何内容都应该只是您的文件名。

[编辑]澄清:我最初建议Add(string file, string entryName),但当我看到OP在调用中指定压缩方法时,编辑为上述方法。但新 zip 条目的默认压缩方法是 CompressionMethod.Deflated,因此使用 Add(string file, string entryName) 方法应该会给出相同的结果,而无需获取 IStaticDataSource。

关于c# - 如何使用 SharpZipLib 库仅压缩文件而不压缩文件夹? (C#),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4924398/

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