windows phone使用sharpcompress進行解壓壓縮檔

來源:互聯網
上載者:User

標籤:style   class   blog   c   code   java   

在做移動端時,當我們需要從伺服器獲得多個檔案時,為了節約流量,伺服器一般會返回一個壓縮包,那我們就是下載完成後,在手機中進行解壓到指定位置

SharpCompress就是可以在手機中進行解壓一個類庫(.net),在codeplex是開源,支援案頭端和移動端

     點擊下載最新版本       查看支援內容      API使用樣本

 

下面我們看一下在windows phone中使用其進行解壓ZIP包

        public async void DownloadAndUnCompress()        {            string strUrl = "http://qd.baidupcs.com/file/3ebe6e988584733fba61c04e9568bc73?fid=3860865449-250528-923682234289515&time=1401003314&sign=FDTAXER-DCb740ccc5511e5e8fedcff06b081203-sDvdhrr7p1EWhMUFNOaYlQbwLmE%3D&to=qb&fm=Q,B,U,nc&newver=1&expires=1401003914&rt=sh&r=347257022&logid=3996325361&sh=1&vuk=3860865449&fn=SharpCompress0.10.3.zip";            await Task.Run(() =>             {                 WebClient wc = new WebClient();                 wc.OpenReadAsync(new Uri(strUrl, UriKind.Absolute));                 wc.DownloadProgressChanged += (s, dpce) =>                 {                     System.Diagnostics.Debug.WriteLine("已下載" + dpce.ProgressPercentage + "%");                 };                 wc.OpenReadCompleted += (s, orce) =>                 {                     if (orce.Error != null)                     {                         System.Diagnostics.Debug.WriteLine("下載出錯");                         return;                     }                     using (IsolatedStorageFile storage = IsolatedStorageFile.GetUserStoreForApplication())                     {                         var zipArchive = ArchiveFactory.Open(orce.Result);//建立一個解壓器                         foreach (var entry in zipArchive.Entries)//提取裡面每個實體,包括檔案夾都算實體                         {                             //如果為檔案夾先把檔案夾建立出來                             if (entry.IsDirectory)                             {                                 if (!storage.DirectoryExists(entry.FilePath))                                 {                                     storage.CreateDirectory(entry.FilePath);                                 }                                 continue;                             }                             //entry.FilePath  為檔案的全路徑                             using (IsolatedStorageFileStream isofilestream = storage.CreateFile(entry.FilePath))                             {                                 //寫入到隔離儲存區 (Isolated Storage)空間中                                 entry.WriteTo(isofilestream);                             }                         }                         zipArchive.Dispose();                         System.Diagnostics.Debug.WriteLine("解壓完成");                     }                 };             });        }

其它的如RAR、Tar、GZip、7Zip可參考codeplex官方文檔

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.