Silverlight 中使用 zip

Silverlight 中使用 zip,第1张

概述Silverlight除了从资源文件加载文件进行UnZip之外,并不支持开放的Zip和UnZip *** 作。如果需要进行Zip和UnZip *** 作需要使用第三方库SharpZipLib,其提供了sl的版本,目前支持sl 3.0及其以上的sl。可参见:http://slsharpziplib.codeplex.com/releases/view/50561,以下是pmias中用到的一段代码,贴此以作备用。没有

Silverlight除了从资源文件加载文件进行UnZip之外,并不支持开放的Zip和UnZip *** 作。如果需要进行Zip和UnZip *** 作需要使用第三方库SharpZiplib,其提供了sl的版本,目前支持sl 3.0及其以上的sl。可参见:http://slsharpziplib.codeplex.com/releases/view/50561,以下是pmias中用到的一段代码,贴此以作备用。没有zip *** 作,只有unzip,参数中的zipStream来自httpWebResponse response的response.GetResponseStream(),应用形式为直接解压通过httpResponse返回的Stream,然后保存为文件。如果需要unzip文件可自行修改或查阅SharpZiplib的相关 *** 作,在传参时传入zip文件的Stream即可。

using System; using System.Net; using System.windows; using System.windows.Controls; using System.windows.documents; using System.windows.Ink; using System.windows.input; using System.windows.Media; using System.windows.Media.Animation; using System.windows.Shapes; using System.IO; using ICSharpCode.SharpZiplib.Zip; using System.Text; namespace Navi {     /*      * 钟磊 20111107      *       * silverlight 中的 zip *** 作      * 其中用到第三方库:SharpZiplib.Silverlight 0.86.0.518,支持silverlight 3以上版本      * 使用时引用库文件 SharpZiplib.Silverlight3.dll      * http://slsharpziplib.codeplex.com/releases/vIEw/50561      *       * 注:所有传入的Stream都不在此类中关闭      * 关闭权留给调用者      */     public class ZipUtil     {         //将zip过的stream解压后写入文件         public static voID ZipStream2file(Stream saveStream,Stream zipStream)         {             ZipinputStream unZipStream = new ZipinputStream(zipStream);             //默认只有一个Entry             ZipEntry theEntry = unZipStream.GetNextEntry();             int size = 1024;             byte[] newbyte = new byte[size];             while (true)             {                 size = unZipStream.Read(newbyte,newbyte.Length);                 if (size > 0)                 {                     saveStream.Write(newbyte,size);                 }                 else                 {                     break;                 }             }             //saveStream.Close();             unZipStream.Close();             //zipStream.Close();         }         //将Stream直接写入文件         public static voID Stream2file(Stream saveStream,Stream responseStream)         {             int size = 1024;             byte[] newbyte = new byte[size];             while (true)             {                 size = responseStream.Read(newbyte,newbyte.Length);                 if (size > 0)                 {                     //写入数据                     saveStream.Write(newbyte,size);                 }                 else                 {                     break;                 }             }             //responseStream.Close();             //saveStream.Close();         }         //从一个zip格式的stream中unzip出字符串         public static string ZipStream2String(Stream zipStream)         {             ZipinputStream unZipStream = new ZipinputStream(zipStream);             //打开zip文档中的一个Entry,此句必须要有             ZipEntry theEntry = unZipStream.GetNextEntry();             int size = 1024;             byte[] newbyte = new byte[size];             StringBuilder sb = new StringBuilder();             String strTmp;             while (true)             {                 size = unZipStream.Read(newbyte,newbyte.Length);                 if (size > 0)                 {                     strTmp = EnCoding.UTF8.GetString(newbyte,size);                     sb.Append(strTmp);                 }                 else                 {                     break;                 }             }             unZipStream.Close();             //zipStream.Close();             return sb.ToString();         }         //从Stream中读取字符串         public static string Stream2String(Stream responseStream)         {             StreamReader readStream = new StreamReader(responseStream,EnCoding.UTF8);             string result = readStream.ReadToEnd();             readStream.Close();             //responseStream.Close();             return result;         }     } }

总结

以上是内存溢出为你收集整理的Silverlight 中使用 zip全部内容,希望文章能够帮你解决Silverlight 中使用 zip所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1072234.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-26
下一篇2022-05-26

发表评论

登录后才能评论

评论列表(0条)

    保存