C#System.IO.Compression命名空间

C# System.IO.Compression命名空间,注意:此命名空间在 .NET Framework 2.0 版中是新增的。C# System.IO.Compression命名空间包含提供基本的流压缩和解压缩服务的类。GZipStream提供用于压缩和解压缩流的方法和属性。下面以 GZipStream  为例说明

创新互联是一家专业提供乌拉特中企业网站建设,专注与成都网站设计、成都做网站H5场景定制、小程序制作等业务。10年已为乌拉特中众多企业、政府机构等服务。创新互联专业网站制作公司优惠进行中。

注意:此类在 .NET Framework 2.0 版中是新增的。

提供用于压缩和解压缩流的方法和属性。
命名空间:System.IO.Compression
程序集:System(在 system.dll 中)
语法
Visual Basic(声明)
Public Class GZipStream
Inherits Stream
Visual Basic(用法)
Dim instance As GZipStream

C#
public class GZipStream : Stream

C++
public ref class GZipStream : public Stream

J#
public class GZipStream extends Stream

JScript
public class GZipStream extends Stream

 
 
 
  1. classclsZip
  2. ...{
  3. publicvoidCompressFile(stringsourceFile,stringdestinationFile)
  4. ...{
  5. //makesurethesourcefileisthere
  6. if(File.Exists(sourceFile)==false)
  7. thrownewFileNotFoundException();
  8. //Createthestreamsandbytearraysneeded
  9. byte[]buffer=null;
  10. FileStreamsourceStream=null;
  11. FileStreamdestinationStream=null;
  12. GZipStreamcompressedStream=null;
  13. try
  14. ...{
  15. //Readthebytesfromthesourcefileintoabytearray
  16. sourceStream=newFileStream(sourceFile,FileMode.Open,FileAccess.Read,FileShare.Read);
  17. //Readthesourcestreamvaluesintothebuffer
  18. buffer=newbyte[sourceStream.Length];
  19. intcheckCounter=sourceStream.Read(buffer,0,buffer.Length);
  20. if(checkCounter!=buffer.Length)
  21. ...{
  22. thrownewApplicationException();
  23. }
  24. //OpentheFileStreamtowriteto
  25. destinationStream=newFileStream(destinationFile,FileMode.OpenOrCreate,FileAccess.Write);
  26. //Createacompressionstreampointingtothedestiantionstream
  27. compressedStream=newGZipStream(destinationStream,CompressionMode.Compress,true);
  28. //Nowwritethecompresseddatatothedestinationfile
  29. compressedStream.Write(buffer,0,buffer.Length);
  30. }
  31. catch(ApplicationExceptionex)
  32. ...{
  33. MessageBox.Show(ex.Message,"压缩文件时发生错误:",MessageBoxButtons.OK,MessageBoxIcon.Error);
  34. }
  35. finally
  36. ...{
  37. //Makesureweallwayscloseallstreams
  38. if(sourceStream!=null)
  39. sourceStream.Close();
  40. if(compressedStream!=null)
  41. compressedStream.Close();
  42. if(destinationStream!=null)
  43. destinationStream.Close();
  44. }
  45. }
  46. publicvoidDecompressFile(stringsourceFile,stringdestinationFile)
  47. ...{
  48. //makesurethesourcefileisthere
  49. if(File.Exists(sourceFile)==false)
  50. thrownewFileNotFoundException();
  51. //Createthestreamsandbytearraysneeded
  52. FileStreamsourceStream=null;
  53. FileStreamdestinationStream=null;
  54. GZipStreamdecompressedStream=null;
  55. byte[]quartetBuffer=null;
  56. try
  57. ...{
  58. //Readinthecompressedsourcestream
  59. sourceStream=newFileStream(sourceFile,FileMode.Open);
  60. //Createacompressionstreampointingtothedestiantionstream
  61. decompressedStream=newGZipStream(sourceStream,CompressionMode.Decompress,true);
  62. //Readthefootertodeterminethelengthofthedestiantionfile
  63. quartetBuffer=newbyte[4];
  64. intposition=(int)sourceStream.Length-4;
  65. sourceStream.Position=position;
  66. sourceStream.Read(quartetBuffer,0,4);
  67. sourceStream.Position=0;
  68. intcheckLength=BitConverter.ToInt32(quartetBuffer,0);
  69. byte[]buffer=newbyte[checkLength+100];
  70. intoffset=0;
  71. inttotal=0;
  72. //Readthecompresseddataintothebuffer
  73. while(true)
  74. ...{
  75. intbytesRead=decompressedStream.Read(buffer,offset,100);
  76. if(bytesRead==0)
  77. break;
  78. offset+=bytesRead;
  79. total+=bytesRead;
  80. }
  81. //Nowwriteeverythingtothedestinationfile
  82. destinationStream=newFileStream(destinationFile,FileMode.Create);
  83. destinationStream.Write(buffer,0,total);
  84. //andflusheveryhtingtocleanoutthebuffer
  85. destinationStream.Flush();
  86. }
  87. catch(ApplicationExceptionex)
  88. ...{
  89. MessageBox.Show(ex.Message,"解压文件时发生错误:",
    MessageBoxButtons.OK,MessageBoxIcon.Error);
  90. }
  91. finally
  92. ...{
  93. //Makesureweallwayscloseallstreams
  94. if(sourceStream!=null)
  95. sourceStream.Close();
  96. if(decompressedStream!=null)
  97. decompressedStream.Close();
  98. if(destinationStream!=null)
  99. destinationStream.Close();
  100. }
  101. }
  102. }

以上介绍C# System.IO.Compression命名空间

网页标题:C#System.IO.Compression命名空间
URL网址:http://www.shufengxianlan.com/qtweb/news21/547421.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联