.net ZipFile类:如何修改存档中的文本文件?
有人知道如何使用.net的ZipFile类修改zip存档中的文本文件吗?我的意思是不需要解压所有东西,修改和再次压缩。到目前为止,读取该文件很容易:.net ZipFile类:如何修改存档中的文本文件?,.net,zipfile,.net,Zipfile,有人知道如何使用.net的ZipFile类修改zip存档中的文本文件吗?我的意思是不需要解压所有东西,修改和再次压缩。到目前为止,读取该文件很容易: using (var zip = ZipFile.Open("ExcelWorkbookWithMacros.xlsm", ZipArchiveMode.Update)) { var entry = zip.GetEntry("xl/_rels/workbook.xml.rels"); if (entry != null)
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? <<
}
}
使用(var zip=ZipFile.Open(“ExcelWorkbookWithMacros.xlsm”,ZipArchiveMode.Update))
{
var entry=zip.GetEntry(“xl/_rels/workbook.xml.rels”);
if(条目!=null)
{
var tempFile=Path.GetTempFileName();
entry.extractofile(tempFile,true);
var content=File.ReadAllText(tempFile);
content=content.Replace(“xxx”和“);//这就是我需要做的
>>如何保存存档?无需首先提取文件。您可以执行以下操作:
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);
}
}