gpt4 book ai didi

c# - 仅使用 C#/.NET 重命名 .Zip 条目?

转载 作者:太空宇宙 更新时间:2023-11-03 23:16:37 25 4
gpt4 key购买 nike

所以我现在要做的是打开一个 .Zip 文件并重命名其中的一个文件 (.NET 4.6.1)。我不认为我可以使用第三方库,因为这是一个非常简单的操作(或者我认为是这样,因为我找不到任何 MSDN 函数来重命名条目)。

我找到了几种方法,但它们都很讨厌。您可以将文件提取到磁盘并使用不同的名称再次添加它,或者您也可以在 zip 中使用新名称创建一个新条目,通过流复制文件,然后删除原始条目。

有什么有效的方法吗?在这一点上我不介意任何想法。我知道 DotNetZip 只有一行,但我不能使用第三方库。

非常感谢您的帮助!

最佳答案

System.IO.Compression 中使用 ZipArchive。下面是一个向指定 zip 文件中的每个条目添加 .dat 扩展名的示例:

private static void RenameZipEntries(string file)
{
using (var archive = new ZipArchive(File.Open(file, FileMode.Open, FileAccess.ReadWrite), ZipArchiveMode.Update))
{
var entries = archive.Entries.ToArray();
foreach (var entry in entries)
{
var newEntry = archive.CreateEntry(entry.Name + ".dat");
using (var a = entry.Open())
using (var b = newEntry.Open())
a.CopyTo(b);
entry.Delete();
}
}
}

关于c# - 仅使用 C#/.NET 重命名 .Zip 条目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37052688/

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