我知道DotNetZip或SharpZipLib库的喜欢,通常建议在.NET语言创建ZIP文件(在我的情况下,C#),但它不是不可能使用System.IO.Packaging生成的ZIP文件.我认为尝试在C#中开发一个可以执行此操作的例程可能会很好,而无需下载任何外部库.有没有人有一个System.IO.Packaging用于生成ZIP文件的方法或方法的好例子?
Ram*_*oza 31
让我谷歌这个 - > system.io.packaging + generate + zip
using System;
using System.IO;
using System.IO.Packaging;
namespace ZipSample
{
class Program
{
static void Main(string[] args)
{
AddFileToZip("Output.zip", @"C:\Windows\Notepad.exe");
AddFileToZip("Output.zip", @"C:\Windows\System32\Calc.exe");
}
private static void AddFileToZip(string zipFilename, string fileToAdd, CompressionOption compression = CompressionOption.Normal)
{
using (Package zip = System.IO.Packaging.Package.Open(zipFilename, FileMode.OpenOrCreate))
{
string destFilename = ".\\" + Path.GetFileName(fileToAdd);
Uri uri = PackUriHelper.CreatePartUri(new Uri(destFilename, UriKind.Relative));
if (zip.PartExists(uri))
{
zip.DeletePart(uri);
}
PackagePart part = zip.CreatePart(uri, "", compression);
using (FileStream fileStream = new FileStream(fileToAdd, FileMode.Open, FileAccess.Read))
{
using (Stream dest = part.GetStream())
{
fileStream.CopyTo(dest);
}
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)