.net言語(私の場合はC#)でZipファイルを作成するには、通常、DotNetZipまたはSharpZipLibライブラリのようなものが推奨されることを知っていますが、System.IO.Packaging
を使用して生成することは不可能ではありませんZipファイル。外部ライブラリをダウンロードせずに、C#でルーチンを開発してみて、それができるのはいいことだと思いました。 System.IO.Packaging
を使用してZipファイルを生成する1つまたは複数のメソッドの良い例はありますか?
これをググってみましょう-> 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);
}
}
}
}
}
}
.NET Framework 4.5では、 System.IO.Compression
名前空間で新しいクラスを使用できます。