.NET ZipArchive允许重命名或移动条目吗?当前无法更改ZipArchiveEntry的名称。似乎我需要将原始ZipArchiveEntry的流复制到一个具有更改名称的新ZipArchiveEntry。
谢谢 马丁
ZipArchive
,您将不得不创建一个新条目,该条目是原始条目的副本,但具有新名称,然后删除原始条目。static void RenameEntry(this ZipArchive archive, string oldName, string newName)
{
ZipArchiveEntry oldEntry = archive.GetEntry(oldName),
newEntry = archive.CreateEntry(newName);
using (Stream oldStream = oldEntry.Open())
using (Stream newStream = newEntry.Open())
{
oldStream.CopyTo(newStream);
}
oldEntry.Delete();
}
作为扩展方法实现,您可以像上面那样调用:
ZipArchive archive = ...; open archive in "update" mode
string oldName = ...,
newName = ...; // names initialized as appropriate
archive.RenameEntry(oldName, newName);