這篇文章主要介紹“C# System.IO.Compression命名空間怎么實(shí)現(xiàn)”,在日常操作中,相信很多人在C# System.IO.Compression命名空間怎么實(shí)現(xiàn)問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”C# System.IO.Compression命名空間怎么實(shí)現(xiàn)”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!
站在用戶的角度思考問(wèn)題,與客戶深入溝通,找到七里河網(wǎng)站設(shè)計(jì)與七里河網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:成都做網(wǎng)站、網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、空間域名、網(wǎng)絡(luò)空間、企業(yè)郵箱。業(yè)務(wù)覆蓋七里河地區(qū)。
C# System.IO.Compression命名空間,注意:此命名空間在 .NET Framework 2.0 版中是新增的。C# System.IO.Compression命名空間包含提供基本的流壓縮和解壓縮服務(wù)的類。GZipStream提供用于壓縮和解壓縮流的方法和屬性。下面以 GZipStream 為例說(shuō)明
注意:此類在 .NET Framework 2.0 版中是新增的。
提供用于壓縮和解壓縮流的方法和屬性。
命名空間:System.IO.Compression
程序集:System(在 system.dll 中)
語(yǔ)法
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
classclsZip
...{
publicvoidCompressFile(stringsourceFile,stringdestinationFile)
...{
//makesurethesourcefileisthere
if(File.Exists(sourceFile)==false)
thrownewFileNotFoundException();
//Createthestreamsandbytearraysneeded
byte[]buffer=null;
FileStreamsourceStream=null;
FileStreamdestinationStream=null;
GZipStreamcompressedStream=null;
try
...{
//Readthebytesfromthesourcefileintoabytearray
sourceStream=newFileStream(sourceFile,FileMode.Open,FileAccess.Read,FileShare.Read);
//Readthesourcestreamvaluesintothebuffer
buffer=newbyte[sourceStream.Length];
intcheckCounter=sourceStream.Read(buffer,0,buffer.Length);
if(checkCounter!=buffer.Length)
...{
thrownewApplicationException();
}
//OpentheFileStreamtowriteto
destinationStream=newFileStream(destinationFile,FileMode.OpenOrCreate,FileAccess.Write);
//Createacompressionstreampointingtothedestiantionstream
compressedStream=newGZipStream(destinationStream,CompressionMode.Compress,true);
//Nowwritethecompresseddatatothedestinationfile
compressedStream.Write(buffer,0,buffer.Length);
}
catch(ApplicationExceptionex)
...{
MessageBox.Show(ex.Message,"壓縮文件時(shí)發(fā)生錯(cuò)誤:",MessageBoxButtons.OK,MessageBoxIcon.Error);
}
finally
...{
//Makesureweallwayscloseallstreams
if(sourceStream!=null)
sourceStream.Close();
if(compressedStream!=null)
compressedStream.Close();
if(destinationStream!=null)
destinationStream.Close();
}
}
publicvoidDecompressFile(stringsourceFile,stringdestinationFile)
...{
//makesurethesourcefileisthere
if(File.Exists(sourceFile)==false)
thrownewFileNotFoundException();
//Createthestreamsandbytearraysneeded
FileStreamsourceStream=null;
FileStreamdestinationStream=null;
GZipStreamdecompressedStream=null;
byte[]quartetBuffer=null;
try
...{
//Readinthecompressedsourcestream
sourceStream=newFileStream(sourceFile,FileMode.Open);
//Createacompressionstreampointingtothedestiantionstream
decompressedStream=newGZipStream(sourceStream,CompressionMode.Decompress,true);
//Readthefootertodeterminethelengthofthedestiantionfile
quartetBuffer=newbyte[4];
intposition=(int)sourceStream.Length-4;
sourceStream.Position=position;
sourceStream.Read(quartetBuffer,0,4);
sourceStream.Position=0;
intcheckLength=BitConverter.ToInt32(quartetBuffer,0);
byte[]buffer=newbyte[checkLength+100];
intoffset=0;
inttotal=0;
//Readthecompresseddataintothebuffer
while(true)
...{
intbytesRead=decompressedStream.Read(buffer,offset,100);
if(bytesRead==0)
break;
offset+=bytesRead;
total+=bytesRead;
}
//Nowwriteeverythingtothedestinationfile
destinationStream=newFileStream(destinationFile,FileMode.Create);
destinationStream.Write(buffer,0,total);
//andflusheveryhtingtocleanoutthebuffer
destinationStream.Flush();
}
catch(ApplicationExceptionex)
...{
MessageBox.Show(ex.Message,"解壓文件時(shí)發(fā)生錯(cuò)誤:",
MessageBoxButtons.OK,MessageBoxIcon.Error);}
finally
...{
//Makesureweallwayscloseallstreams
if(sourceStream!=null)
sourceStream.Close();
if(decompressedStream!=null)
decompressedStream.Close();
if(destinationStream!=null)
destinationStream.Close();
}
}
}
到此,關(guān)于“C# System.IO.Compression命名空間怎么實(shí)現(xiàn)”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!
網(wǎng)頁(yè)題目:C#System.IO.Compression命名空間怎么實(shí)現(xiàn)
文章地址:http://aaarwkj.com/article30/gpjhso.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、動(dòng)態(tài)網(wǎng)站、網(wǎng)站維護(hù)、營(yíng)銷型網(wǎng)站建設(shè)、建站公司、云服務(wù)器
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)