URI(http://www.abc.com/a.zipなど)にzipファイルがあり、ファイルを開いてディスクに保存したいと思います。C#で、ディスクに保存せずにファイルをディスクに保存せずに開く方法はありますか?
ありがとう、
サチン
URI(http://www.abc.com/a.zipなど)にzipファイルがあり、ファイルを開いてディスクに保存したいと思います。C#で、ディスクに保存せずにファイルをディスクに保存せずに開く方法はありますか?
ありがとう、
サチン
ZipFile .NetFramework4.5クラスまたはDotNetZipAPIを使用します。
ZipFile.ExtractToDirectory(zipPath, extractPath);
編集:WebClient
クラスのメソッドを介して、ストリームを準備したり、URLのバイト配列を取得したりできます。
string urlStr = "https://xyz.com/sample.zip";
using (WebClient client = new WebClient())
{
byte []bytes=client.DownloadData(urlStr);
using (MemoryStream ms = new MemoryStream(bytes))
{
using (ZipFile zip = ZipFile.Read(ms))
{
zip.ExtractAll(@"C:\csnet");
}
}
}
DotNetZipを使用してアーカイブをファイルシステムに保存せずにzipファイルを抽出する例。
private static void ExtractFromUrl(Uri uri, string directoryPath)
{
using (var webClient = new WebClient())
{
var data = webClient.DownloadData(uri);
using (var memoryStream = new MemoryStream(data))
using (var zipFile = ZipFile.Read(memoryStream))
{
zipFile.ExtractAll(directoryPath);
}
}
}