全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1401
推到 Plurk!
推到 Facebook!

如何判別是否為壓縮檔??

答題得分者是:Victor4022
Felix_delphi
一般會員


發表:2
回覆:0
積分:0
註冊:2011-06-24

發送簡訊給我
#1 引用回覆 回覆 發表時間:2011-06-27 17:34:04 IP:202.39.xxx.xxx 訂閱
我要寫一支程式,

按下按鈕可以全部壓縮或解壓縮,

但是我要怎麼判別哪些檔案已經壓縮過了、哪些檔案還沒壓縮??

除了用副檔名之外,有其他方法可用嗎??

像我第一個直覺是用TZCompressionLevel來判斷,

但是不知道怎麼取得這個屬性??好像也無法取得??

小弟是Delphi新手,

請各位前輩多多指教,

謝謝~
Victor4022
中階會員


發表:0
回覆:76
積分:90
註冊:2011-02-20

發送簡訊給我
#2 引用回覆 回覆 發表時間:2011-07-02 21:17:20 IP:122.126.xxx.xxx 訂閱
您好, 剛剛翻了一下Delphi 7的 Zlib.pas 原始碼:

1. 壓縮時可以用 TCompressionStream 這個物件來處理,
2. 解壓縮可以用 TDecompressionStream 這個物件來處理
3. TCompressionStream.Create 時, 最後一行的 CCheck function 就會檢查檔案格式,是 Zlib 壓縮格式就會 raise 一個 ECompressionError exception
4. TDecompressionStream.Create 時也有上面的檢查, 只是呼叫的為 DCheck function

所以, 依照您的需求, 在掃瞄後取得檔案時, 可先使用 TDecompressionSteam, 萬一檔案不是壓縮格式, 再使用 TCompressionStream 對該檔案壓縮
至於 TCompressionStream 與 TDecompressionStream 怎麼用, 可以參考以下外部連結:
http://www.delphipages.com/forum/showthread.php?t=144156

另外 ZLib.pas 的原始碼註解也非常清楚, 不彷看一下 :D
編輯記錄
Victor4022 重新編輯於 2011-07-02 07:20:39, 註解 無‧
系統時間:2024-03-29 5:31:03
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!