2015-06-10 82 views
-1

我想在Azure FileStorage上以zip格式存儲一些數據。直接從遠程源解壓縮zip文件

SevenZipSharp(特別是SevenZipExtractor類)可以使用像https://myaccount.file.core.windows.net/shared1/folder1/data00054.zip這樣的URL而不是本地文件嗎?

我想從遠程位置檢索文件,解壓縮到內存中,處理數據,然後清除內存。

回答

0

看來你可以做,即使沒有任何第三方庫像7zip的:

WebClient OpenRead將讓你流從你的URI和ZipArchive constructor from stream將讓你ZipArchive從中:

var uri = @"https://myaccount.file.core.windows.net/shared1/folder1/data00054.zip"; 
var wc = new WebClient(); 

var stream = wc.OpenRead(uri); 
var zip = new ZipArchive(stream); 

應用根據情況使用塊。

如果你真的想使用第三方庫,你可以找到文檔(在這種情況下,來源)here。正如你所看到的,它也可以使用任意流:

var uri = @"https://myaccount.file.core.windows.net/shared1/folder1/data00054.zip"; 
var wc = new WebClient(); 

var stream = wc.OpenRead(uri); 
var extractor = new SevenZipExtractor(stream); 
+0

謝謝,我知道WebClient,但ZipArchive對於大文件太慢而且不可靠。手動下載如果SevenZipSharp無法打開遠程文件,我將使用它。 –