所以我现在正在尝试做的是打开.Zip文件并重命名其中的文件(.NET 4.6.1)。我不认为我可以使用第三方库,因为这是一个非常简单的操作(或者我认为,因为我找不到任何MSDN函数来重命名条目)。
我找到了几种方法,但它们很讨厌。您可以将文件解压缩到磁盘并使用其他名称重新添加,也可以在zip中创建一个新名称,通过流复制文件,然后删除原始条目。
有没有有效的方法呢?我现在不介意任何想法。我知道使用DotNetZip它只有一行,但我不能使用第三部分库。
非常感谢您的帮助!
答案 0 :(得分:2)
使用ZipArchive
中的System.IO.Compression
。为指定的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();
}
}
}