gpt4 book ai didi

c# sharpziplib 将文件添加到现有存档

转载 作者:太空狗 更新时间:2023-10-29 19:56:37 26 4
gpt4 key购买 nike

我正在尝试使用以下代码将文件添加到现有存档中。运行时没有显示错误或异常,但也没有文件添加到存档中。有什么想法吗?

        using (FileStream fileStream = File.Open(archivePath, FileMode.Open, FileAccess.ReadWrite))
using (ZipOutputStream zipToWrite = new ZipOutputStream(fileStream))
{
zipToWrite.SetLevel(9);

using (FileStream newFileStream = File.OpenRead(sourceFiles[0]))
{
byte[] byteBuffer = new byte[newFileStream.Length - 1];

newFileStream.Read(byteBuffer, 0, byteBuffer.Length);

ZipEntry entry = new ZipEntry(sourceFiles[0]);
zipToWrite.PutNextEntry(entry);
zipToWrite.Write(byteBuffer, 0, byteBuffer.Length);
zipToWrite.CloseEntry();

zipToWrite.Close();
zipToWrite.Finish();
}
}

最佳答案

DotNetZip ,将文件添加到现有 zip 非常简单可靠。

using (var zip = ZipFile.Read(nameOfExistingZip))
{
zip.CompressionLevel = Ionic.Zlib.CompressionLevel.BestCompression;
zip.AddFile(additionalFileToAdd);
zip.Save();
}

如果要为该新文件指定目录路径,请对 AddFile() 使用不同的重载。

using (var zip = ZipFile.Read(nameOfExistingZip))
{
zip.CompressionLevel = Ionic.Zlib.CompressionLevel.BestCompression;
zip.AddFile(additionalFileToAdd, "directory\\For\\The\\Added\\File");
zip.Save();
}

如果要添加一组文件,请使用 AddFiles()。

using (var zip = ZipFile.Read(nameOfExistingZip))
{
zip.CompressionLevel = Ionic.Zlib.CompressionLevel.BestCompression;
zip.AddFiles(listOfFilesToAdd, "directory\\For\\The\\Added\\Files");
zip.Save();
}

您不必担心 Close()、CloseEntry()、CommitUpdate()、Finish() 或任何其他垃圾。

关于c# sharpziplib 将文件添加到现有存档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1356003/

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