.net ZipFile 类:如何修改存档中的文本文件?
Posted
技术标签:
【中文标题】.net ZipFile 类:如何修改存档中的文本文件?【英文标题】:.net ZipFile class: How to modify a text file within an archive? 【发布时间】:2019-07-10 19:06:53 【问题描述】:有人知道如何使用 .net 的 ZipFile 类修改 zip 存档中的文本文件吗?我的意思是不解压缩所有内容,修改并再次压缩。到目前为止读取文件很容易:
using (var zip = ZipFile.Open("ExcelWorkbookWithMacros.xlsm", ZipArchiveMode.Update))
var entry = zip.GetEntry("xl/_rels/workbook.xml.rels");
if (entry != null)
var tempFile = Path.GetTempFileName();
entry.ExtractToFile(tempFile, true);
var content = File.ReadAllText(tempFile);
content = content.Replace("xxx", ""); // THIS IS WHAT I NEED TO DO
>> How to save back the archive? <<
【问题讨论】:
【参考方案1】:无需解压文件即可。你可以这样做:
string entryName = "some entry";
string contents = "";
var entry = zip.GetEntry(entryName);
if (entry != null)
using(StreamReader streamReader = new StreamReader(entry.Open()))
contents = streamReader.ReadToEnd();
contents = contents.Replace("xxx", "");
entry.Delete();
entry = zip.CreateEntry(entryName);
using(StreamWriter streamWriter = new StreamWriter(entry.Open()))
streamWriter.Write(contents);
【讨论】:
以上是关于.net ZipFile 类:如何修改存档中的文本文件?的主要内容,如果未能解决你的问题,请参考以下文章