在使用 gzipstream 進行壓縮的時候, 在最後必須呼叫 close()方法, 否則會發現解壓縮後少乙個位元組, 當壓縮的檔案小於4kb時, 解壓縮到檔案長度為0.
下面為乙個完整的壓縮與解壓縮檔案的**, 以做參考:
privatevoid button1_click(object
sender, eventargs e)
, compress rate: %
" ,buf.length, (double)buf.length * 100 / (double
)fi.length));
string newfilename = string.format(@"
\_new",
path.getdirectoryname(filename), path.getfilenamewithoutextension(filename), path.getextension(filename));
listbox1.items.add(
"decompress length:
" +decompress(buf, newfilename).tostring());
}public
static
byte compress(string
filename)
while (count > 0
); fs.close();
compressedstream.close();
return
ms.toarray();
}public
static
int decompress(byte data, string
filename)
while (count > 0
);
iret = (int
)fs.length;
fs.close();
}finally
return
iret;
}private
void button3_click(object
sender, eventargs e)
;if (dialog.showdialog() ==dialogresult.ok)
}
C 壓縮 解壓縮類
using system using system.collections.generic using system.text using system.io using icsharpcode.sharpziplib using icsharpcode.sharpziplib.zip using ...
壓縮 解壓縮流GZipStream
如果要在壓縮過程中檢查錯誤或要與其他作業系統所用程式共享壓縮資料,則要是用gzipstream類。gzipstream類包含是用gzip資料格式進行壓縮和解壓縮檔案的方法,該類不能用於解壓縮大於4gb的檔案。一 屬性 basestream 獲取對基礎流的引用。canread 獲取乙個值,該值指示流是...
壓縮與解壓縮
1 compress和uncompress 壓縮或者解壓縮資料,壓縮後檔案自動加上副檔名.z 2 gzip gunzip 壓縮解壓縮檔案,gz,比compress有效 例如 gzip ye.txt 壓縮ye.tar檔案,並且壓縮後副檔名加長ye.txt.gz gzip d ye.txt.gz 解壓縮...