今天頭鐵用system.io.compression類來寫一下檔案的gzip壓縮,結果***。。。。。。。。(給自己整暈了)
主要是壓縮之後我發現是有內容的,又想著寫一下解壓部分,結果要麼溢位,要麼解壓成功後得到乙個啥也沒有的空殼。下面我給大家分享一下壓縮部分吧(我覺得應該也是有問題的,因為他有內容但是明顯不夠,純屬個人看法)。後面解壓部分我也放在這裡,如果有要嘗試的小夥伴搞出來了就給我指點指點,不勝感激。
——————————————————
using system;
using system.collections.generic;
using system.componentmodel;
using system.data;
using system.drawing;
using system.io;
using system.io.compression;
using system.linq;
using system.text;
using system.threading.tasks;
using system.windows.forms;
namespace 檔案壓縮
private
void
form1_load
(object sender,
eventargs e)
public
filestream stream1
public
filestream stream2
public
gzipstream gzip
private
void
button2_click
(object sender,
eventargs e)if(
string
.isnullorempty
(textbox2.text)
)string str1 = textbox1.text;
//獲取檔案路徑
string str2 = textbox2.text.
trim()
+".gzip"
;//獲取壓縮檔案名
trycatch
(exception ex)
finally}}
#region 開啟檔案選擇對話方塊
///
/// 開啟檔案選擇對話方塊
///
///
///
private
void
button1_click
(object sender,
eventargs e)
}#endregion
private
void
label2_click
(object sender,
eventargs e)
#region 選擇要解壓的檔案
private
void 解壓_click
這是乙個失敗的案例。。。。
所以得出結論:這種方法太扯,強烈建議用
icsharpcode.sharpziplib
這個類庫來做很簡便了,也容易理解。
我去查到有篇文章寫的不錯,應該是很有幫助的。轉到
補充說明一下,我用上面這篇部落格**寫出來的結果是一樣的,都是壓縮有東西,解壓為空殼。個人覺得是解壓後的檔案位元組太多,解壓會超過定義的範圍,就是壓縮內容是比原內容小的,不好去界定到底要多大空間,應該是需要自己設計一種演算法去解決的。(我的認知有限,不知道說得對不對,先挖個坑以後再填)
gzip壓縮檔案 解壓檔案
解壓gzip壓縮格式檔案 eg 123.mms param source 原始檔 param target 目標檔案 public static void ungzipfile file source,string target throws exception gzin.close 關閉壓縮輸入流...
symbian壓縮和解壓縮GZIP檔案
開發夥伴平台 s60 3rd edition,fp1 詳細描述 下列 片段演示了如何壓縮和解壓縮gzip檔案,這裡使用了cezfiletogzip類和cezgziptofi類。可以通過自簽名執行。mmp檔案 需要下列鏈結庫 code library efsrv.lib library ezlib.l...
nginx 預壓縮 gzip 靜態檔案
對於靜態檔案先壓縮再輸出是再正常不過的事了,但是這種壓縮都是動態的,在每次請求都會先壓縮再輸出,大大浪費了很多cpu。如果前端加了反向 快取,那能減少這種浪費。但不是每個生產環境前端都有快取的。而nginx有個模組gzip precompression,這個模組的作用是對於需要壓縮的檔案,直接讀取已...