gpt4 book ai didi

c# - 如何使用 ZipPackage 创建一个 zip

转载 作者:太空狗 更新时间:2023-10-30 00:54:26 26 4
gpt4 key购买 nike

我在 MSDN 上看到了关于 ZipPackage class 的文档.

上面的例子不是很有用,谁能提供一个关于这个类的例子?

最佳答案

举个例子,注意:
- ZipPackage 似乎不压缩
- 生成的 zip 有一个不需要的文件“[Content_Types].xml”
- System.IO.Compression因为 .Net 4.5 似乎是一个不错的选择

您必须在 Visual Studio 中添加对“WindowsBase”的引用(没有像“System.IO”这样的前缀)

using System;
using System.Linq;
using System.Text;
using System.IO.Packaging;
using System.IO;

namespace TestZip
{
public static class Program
{
public static void Main(string[] args)
{
byte[] data = Encoding.UTF8.GetBytes(String.Join("\n", new string[1000].Select(s => "Something to zip.").ToArray()));
byte[] zippedBytes;
using(MemoryStream zipStream = new MemoryStream())
{
using (Package package = Package.Open(zipStream, FileMode.Create))
{
PackagePart document = package.CreatePart(new Uri("/test.txt", UriKind.Relative), "");
using (MemoryStream dataStream = new MemoryStream(data))
{
document.GetStream().WriteAll(dataStream);
}
}
zippedBytes = zipStream.ToArray();
}
File.WriteAllBytes("test.zip", zippedBytes);
}

private static void WriteAll(this Stream target, Stream source)
{
const int bufSize = 0x1000;
byte[] buf = new byte[bufSize];
int bytesRead = 0;
while ((bytesRead = source.Read(buf, 0, bufSize)) > 0)
target.Write(buf, 0, bytesRead);
}
}
}

关于c# - 如何使用 ZipPackage 创建一个 zip,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12888805/

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