先日、windowsのCドライブのディスクが枯渇する問題がありました。
原因は凡ミスでTEMPファイルを大量生成していたのですが。。。
その関連でCドライブの%TEMP%にファイルを作成せずにZIPファイルを解凍する方法があったので書き込みます。
まず、ZipArchiveを使えるようにするため、以下を参照します。
- System.IO.Compression
- System.IO.Compression.FileSystem
そして、以下のコードを書きます。
var file = @"comp.zip";
using (ZipArchive archive = ZipFile.OpenRead(file))
{
var f = archive.GetEntry("comp.txt");
var ms = f.Open();
using (var fileStream = new FileStream("output.txt",
FileMode.CreateNew, FileAccess.ReadWrite))
{
ms.CopyTo(fileStream);
}
}
これで、comp.zipにあるcomp.txtをoutput.txtに書き出すことができます。