gpt4 book ai didi

C# 使用 zip 存档 System.IO.Compression 创建 zip 文件

转载 作者:行者123 更新时间:2023-11-30 16:39:27 26 4
gpt4 key购买 nike

下面是我要实现的功能

  • 编写一个 JSON 文件。
  • 写一个 PDF 文件。
  • 为这两个文件创建一个存档

我正在使用 System.IO.Compression ZipArchive为了达成这个。从文档中,我还没有找到一个好的用例。文档中的示例假定 zip 文件存在。

我想做什么创建 zipArchive 流写入 JSON 文件和 pdf 文件作为 zip 文件中的条目。

using (var stream = new FileStream(path, FileMode.Create))
{
using (var archive = new ZipArchive(stream, ZipArchiveMode.Create, true))
{
ZipArchiveEntry manifest = archive.CreateEntry(filenameManifest);

using (StreamWriter writerManifest = new StreamWriter(manifest.Open()))
{
writerManifest.WriteLine(JSONObject_String);
}

ZipArchiveEntry pdfFile = archive.CreateEntry(filenameManifest);
using (StreamWriter writerPDF = new StreamWriter(pdfFile.Open()))
{
writerPDF.WriteLine(pdf);
}
}
}

最佳答案

您不关闭,而是使用“manifest.Open()”打开。那么它可能没有将所有内容写入 zip。

用另一个 using 包裹它,像这样:

using (var stream = new FileStream(path, FileMode.Create))
{
using (var archive = new ZipArchive(stream, ZipArchiveMode.Create, true))
{
ZipArchiveEntry manifest = archive.CreateEntry(filenameManifest);
using (Stream st = manifest.Open())
{
using (StreamWriter writerManifest = new StreamWriter(st))
{
writerManifest.WriteLine(JSONObject_String);
}
}

ZipArchiveEntry pdfFile = archive.CreateEntry(filenameManifest);
using (Stream st = manifest.Open())
{
using (StreamWriter writerPDF = new StreamWriter(st))
{
writerPDF.WriteLine(pdf);
}
}
}
}

关于C# 使用 zip 存档 System.IO.Compression 创建 zip 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53053073/

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