當前位置:首頁 » 文件管理 » delphi7z解壓

delphi7z解壓

發布時間: 2023-05-03 00:38:39

『壹』 Delphi 解壓文件

很簡單吧,先不帶密碼嘗試解壓一次或者獲取信息一次,如果失敗了就說明有密碼咯。
代碼:
procere TForm1.btn1Click(Sender: TObject);
begin
UnZip1.OnBadPassword:=UnZip1BadPassword;
UnZip1.ArchiveStream:=TFileStream.Create('F:\古書.zip',fmOpenRead);
if UnZip1.CheckArchive then
begin
showmessage('No Pass');
UnZip1.ArchiveStream.Free;
exit;
//無密碼,不解壓
end;
//解壓過程,略。
UnZip1.ArchiveStream.Free;
end;

procere TForm1.UnZip1BadPassword(Sender: TObject; FileIndex: Integer;
var NewPassword: String);
begin
NewPassword:='123456'; //123456是真實的密碼,這一步可以省
end;

『貳』 如何使用delphi調用7zip壓縮解壓縮

e 解壓壓縮文件到當前目錄

忽略路徑解壓壓縮的文件到當前或指定的文件夾。此命令行對應的是 壓縮文件管理 命令 解壓到指定文件夾 並在 解壓路徑和選項對話框 「不解壓路徑」的選項是啟用時。

例子:
在當前文件夾,從全部的 RAR 壓縮文件解壓所有的 *.doc 文件到當前文件夾
WinRAR e *.rar *.doc

『叄』 Delphi中如何執行ZIP文件謝謝!

前提條件:你必須裝有
WinZip
or
WinRAR
等解壓縮軟體,
並且文件已經關聯)即可使用:
樓上兄弟說的
ShellExecute
(記得
use
ShellApi
先)~

『肆』 delphi中用zlib怎樣壓縮和解壓

數據壓縮和解壓的示例代碼:

{壓縮流}
function CompressStream(ASrcStream: TStream; ALevel: TSfCompressionLevel): TStream;
var
SrcData,Buffer:Pointer;
BufSize:Integer;
begin
Buffer:=nil;
Result:=nil;
BufSize:=0;
GetMem(SrcData,ASrcStream.Size);
ASrcStream.Position:=0;
ASrcStream.Read(SrcData^,ASrcStream.Size);

try
try
SfCompressBuf(SrcData,ASrcStream.Size,Buffer,BufSize,ALevel);
except
on E:Exception do
SfRaiseException(E,'Exception raised in CompressStream call');
end;
finally
FreeMem(SrcData);
SrcData:=nil;
end;

//由於try...except塊中重引發了異常,所以在發生了異常的情況下,以下的代碼不會執行
Result:=TMemoryStream.Create;
Result.Write(Buffer^,BufSize);
FreeMem(Buffer);
end;

{解壓流}
function CompressStream(ASrcStream: TStream; ALevel: TSfCompressionLevel): TStream;
var
SrcData,Buffer:Pointer;
BufSize:Integer;
begin
Buffer:=nil;
Result:=nil;
BufSize:=0;
GetMem(SrcData,ASrcStream.Size);
ASrcStream.Position:=0;
ASrcStream.Read(SrcData^,ASrcStream.Size);

try
try
SfCompressBuf(SrcData,ASrcStream.Size,Buffer,BufSize,ALevel);
except
on E:Exception do
SfRaiseException(E,'Exception raised in CompressStream call');
end;
finally
FreeMem(SrcData);
SrcData:=nil;
end;

//由於try...except塊中重引發了異常,所以在發生了異常的情況下,以下的代碼不會執行
Result:=TMemoryStream.Create;
Result.Write(Buffer^,BufSize);
FreeMem(Buffer);
end;

{壓縮位元組數組}
function CompressBytes(ASrcBytes: TBytes; ALevel: TSfCompressionLevel): TBytes;
var
Buffer:Pointer;
BufSize:Integer;
begin
Buffer:=nil;
BufSize:=0;

try
SfCompressBuf(@ASrcBytes[0],Length(ASrcBytes),Buffer,BufSize,ALevel);
SetLength(Result,BufSize);
Move(Buffer^,Result[0],BufSize);
except
on E:Exception do
SfRaiseException(E,'Exception raised in CompressBytes call');
end;

//由於try...except塊中重引發了異常,所以在發生了異常的情況下,以下的代碼不會執行
FreeMem(Buffer);
end;

{解壓位元組數組}
function DecompressBytes(ASrcBytes: TBytes): TBytes;
var
Buffer:Pointer;
BufSize:Integer;
begin
Buffer:=nil;
BufSize:=0;

try
SfDecompressBuf(@ASrcBytes[0],Length(ASrcBytes),0,Buffer,BufSize);
SetLength(Result,BufSize);
Move(Buffer^,Result[0],BufSize);
except
on E:Exception do
SfRaiseException(E,'Exception raised in DecompressBytes call');
end;

//由於try...except塊中重引發了異常,所以在發生了異常的情況下,以下的代碼不會執行
FreeMem(Buffer);
end;

『伍』 7Z的其他工具

WinRAR(解壓7z)
WinRAR是一款功能強大的壓縮包管理器,它是檔案工具RAR 在 Windows環境下的圖形界面。該軟體可用於備份數據,縮減電子郵件附件的大小,解壓縮從 Internet 上下載的 RAR、ZIP 2.0 及其它文件,並且可以新建 RAR 及 ZIP 格式的文件。
WinZip(解壓7z)
WinZip 是一款功能強大並且易用的壓縮實用程序, 支持 ZIP、7z、CAB、TAR、GZIP、MIME, 以及更多格式的壓縮文件。 其特點是緊密地與 Windows 資源管理器拖放集成, 不用留開資源管理器而進行壓縮/解壓縮。 包括 WinZip 向導 和 WinZip 自解壓縮器個人版本。 被 PC Magazine 雜志授予最佳精品實用程序大獎、被Vector Capital收購的Winzip。新版支持計劃任務和視圖風格切換。
好壓(壓縮/解壓7z)
好壓(Haozip)對 ZIP、7Z 和 TAR 格式完全支持: 支持zip,7z和tar格式的打包與解壓,並針對每種格式開放自由的演算法配置;支持 RAR、ARJ、CAB、LZH、ACE、GZ、UUE、BZ2、JAR、ISO 等多達44種演算法和類型文件的解壓;針對7z格式,獨創了7z文件注釋功能,並與同類軟體保持良好的兼容性;支持win2000以上全部32/64位系統,並且完美支持windows 7。
快壓(壓縮/解壓7z)
快壓(kuaizip)是一款免費、方便、快速的壓縮和解壓縮利器,擁有一流的壓縮技術,是國內第一款具備自主壓縮格式的軟體。快壓自身的壓縮格式 KZ 具有超大的壓縮比和超快的壓縮解壓速度。同時,快壓還兼容RAR,ZIP 和 7Z 等40餘種壓縮文件。
360壓縮(壓縮/解壓7z)
360壓縮是新一代的壓縮軟體,永久免費。360壓縮相比傳統壓縮軟體更快更輕巧,支持解壓主流的rar、zip、7z、iso等多達39種壓縮文件。360壓縮內置雲安全引擎,可以檢測木馬,更安全。大幅簡化了傳統軟體的繁瑣操作,還改進了超過20項的使用細節,擁有全新的界面。360壓縮的主要特點是快速輕巧、兼容性好、更安全、更漂亮,而且是永久免費的。
WinMount(壓縮/解壓7z)
WinMount是一款功能強大的Windows小工具,具備壓縮軟體的壓縮、解壓、瀏覽等功能,也具備掛載DVD,CD,虛擬機硬碟鏡像的功能。WinMount最大特色在於,首創讀取壓縮包新理念-Mount:直接將壓縮包Mount到虛擬盤,無需解壓,打破壓縮包解壓才能使用的傳統。
Alzip(解壓7z)
這是一個由韓國人做的壓縮工具,DELPHI做的,可以解壓縮幾乎所有常用壓縮格式,可以壓縮文件為 ZIP,CAB,JAR,TAR。LH,等7-8種格式。速度快,支持右鍵,支持自定義分盤壓縮。
PeaZip(壓縮/解壓7z)
是可以在Microsoft Windows或Linux作業系統中執行的文件管理器及壓縮程式。他除了支援自己原生的PEA壓縮格式(主要功能為壓縮、分檔、彈性地認證加密、整合式檢查架構)外,還有支援其他的主流壓縮格式,包括7z格式。不過有特別著重在處理開放授權的壓縮格式上。這套壓縮軟體主要使用Lazarus開發工具以Free Pascal語言進行撰寫。是以GNU Lesser General Public License發布的自由軟體。
Universal Extractor(解壓7z)
正如其名,Universal Extractor 是一個可以從任何類型的存檔文件中提取文件的程序,無論是簡單的 ZIP 文件、安裝程序(如 Wise 或 NSIS),還是 Windows 安裝程序 (.msi) 包。
Squeez(壓縮/解壓7z)
Squeez是一個功能強大的壓縮軟體。支持 SQX,ZIP,CAB,RAR,ACE, 7-ZIP,ARJ,LHA等等眾多壓縮格式的壓縮和解壓縮。 Squeez具有強大的資源管理和文件預覽功能, 甚至可以直接播放壓縮包內的多媒體文件。 Squeez 是一個超快速的文件壓縮應用程序, 支持 13 種不同的壓縮演算法。 軟體可以讀寫如下格式的壓縮文件: SQX, ARJ, BZIP, CAB, GZIP, ZIP, LZH, JAR, TAR, UUE, RAR, ACE 和 7z - 並且不需要其它附加軟體的支持。
LZArc(壓縮/解壓7z)
具有壓縮文件格式轉換功能的壓縮工具-IZArc。可通過滑鼠右鍵菜單來進行操作,跟WinRAR、WinZip的操作有點類似。它的獨特功能有:可轉換多種壓縮檔格式(例如:將RAR轉ZIP)、解壓縮文件密碼、可以建立自我解壓縮文件(EXE)。主要支持的格式:7-ZIP, A, ACE, ARC, ARJ, B64, BH, BIN, BZ2, BZA, C2D, CAB, CDI, CPIO, DEB, ENC, GCA, GZ, GZA, HA, IMG, ISO, JAR, LHA, LIB, LZH, MDF, MBF, MIM, NRG, PAK, PDI, PK3, RAR, RPM, TAR, TAZ, TBZ, TGZ, TZ, UUE, WAR, XXE, YZ1, Z, ZIP, ZOO。
TUGZip(壓縮/解壓7z)
TUGZip是一個完全免費的文件壓縮管理工具。擁有極具親和力的界面,支持眾多的文件格式。你可以創建或打開7-ZIP、BZ2、CAB、LHA(LZH)、SQX、TAR、TGZ、YZ1、ZIP、ACE、ARJ、BZ2、CAB、CPIO、DEB、GCA、GZ、IMP、LIB、RAR、RPM、SQX、TBZ、TAZ等文件格式。支持創建和打開自解壓文件,並附帶一個腳本工具,通過它可以實現自動備份。支持多種加密模式(DES, Triple DES等)。支持Zip64演算法。支持滑鼠拖拽和自動在線升級。具備同類軟體的所有基本功能:添加、刪除、改名、查看、數據校驗、附言、病毒掃描等等。
GPS-通用打包工具外殼(壓縮/解壓7z)
該工具為綠色軟體, 支持多種壓縮格式的打包和解包。 除了支持常見的RAR、ZIP、CAB、7Z、TAR、ACE等格式外, 還支持UHA、RK這樣的高壓縮比格式, 甚至最恐怖的PAQ8JC格式。
FreeArc(解壓7z)
FreeArc 集成了多種壓縮演算法(LZMA/PPMD/Multimedia compression)和過濾器(exe/dict/delta data filters),依據文件類型選擇最佳的壓縮演算法,支持數據恢復(Recovery Record), 支持AES+Twofish+Serpent演算法加密。 最新的MaximumCompression的評測表明FreeArc v0.40在壓縮率和壓縮速度方面,已經全面趕超WinRAR。多數情況下比7z體積小。

『陸』 關於 Delphi 中壓縮流和解壓流的應用

軟體開發者不免都要遇到壓縮數據的問題!經常使用Delphi的朋友都知道 它為我們提供了兩個流類(TCompressionStream和TDepressionStream)來完成數據的壓縮和解壓縮 但美中不足的是 該流在Delphi 的幫助備譽中沒有詳細的說明 使得它們在使用起來有一定得困難 其實在Delphi系統中提供了這兩個類的源代碼和庫 保存在Delphi 光碟的InfoExtraslib Src和InfoExtraslibObj目錄中(其中OBJ目錄中保存的是庫 Src目錄中保存的是源代碼 感興趣的朋友可以看看) 本人在使用的過程中 對它們有了一定的了解

一 類的說明

基類 TCustomZlibStream 類TCustomZlibStream 是類TCompressionStream和TDepressionStream 類的基類 它主要有一個屬性 OnProgress 在類進行壓縮或解壓縮的過程中會發生這個的事件 它的定義如下

Procere OnProgress (Sender: TObject); dynamic; 壓縮類TCompressionStream 類TCompressionStream除了繼承了基類的 OnProgress 屬性外 又增加了一個屬性 CompressionRate 它的定義如下

Property CompressionRate: Single read GetCompressionRate;通過這個屬性 可以得到壓縮比 它的幾個個重要的方法定義如下

Constructor TCompressionStream Create (CompressionLevel: TCompressionLevel; Dest: TStream);其中 TpressionLevel(壓縮類型) 它由如仿中段下幾個定義

① clNone 不進行數據壓縮

② clFastest 進行快速壓縮 犧牲壓縮效率

③ clDefault 進行正常壓縮

④ clMax 進行最大化壓縮 犧牲速度

Dest 目的流 用於存放壓縮過的數據

Function TCompressionStream Write (const Buffer; Count: Longint): Longint;其中 Buffer 需要壓縮的數據

Count: 需要壓縮的數據的位元組數

函數返回寫入流的位元組數

壓縮類TCompressionStream的數據只能是寫入的 如果試圖從其內部讀取數據 將發生一個 Error 異常 需要壓縮的數據通過方法 Write寫入流中 在寫入的過程中就被壓縮 並保存在由構造函數提供的內存流(TmemoryStream)中 同時觸發 OnProcess 事件

解壓縮類 TDepressionStream :和壓縮類TpressionStream 相反 它的數據是只能讀出的 如果試培坦圖往其內部寫數據 將發生一個 Error 異常 它的幾個重要方法定義如下

構造函數 Constructor Create(Source: TStream);

其中 Source 是保存著壓縮數據的流

Function Read(var Buffer; Count: Longint): Longint;數據讀出函數 Buffer 存數據緩沖區

Count: 緩沖區的大小

函數返回讀出的位元組數

數據在讀出的過程中 數據被解壓縮 並觸發 OnProcess 事件

二 類的使用

通過類TCompressionStream和TdepressionStream的配合使用 我們可以非常方便地完成數據的壓縮和解壓 下面就是本人在編寫屏幕拷貝程序中的使用例子

Procere TClientForm GetScreen;VarSourceDC DestDC:HDC;Bhandle:HBITMAP;BitMap:TBitMap;BmpStream Deststream:TMemoryStream;SourceStream:TCompressionStream;Count:Integer;BeginSourceDC:=CreateDC( display nil);{得到屏幕的 DC}DestDC:=CreateCompatibleDC(SourceDC);{建立臨時 DC}Bhandle:=CreateCompatibleBitmap(SourceDC Screen Width Screen Height);{建立點陣圖}SelectObject(DestDC Bhandle);{選擇點陣圖DC}BitBlt(DestDC Screen Width Screen Height SourceDC SRCCOPY);{拷貝整個屏幕}BitMap:=TBitMap Create;BitMap Handle := Bhandle;{保存屏幕點陣圖到 BitMap中}BmpStream:=TMemoryStream Create;BitMap SaveToStream(BmpStream);{建立點陣圖數據的內存流}count:=BmpStream Size;{保存點陣圖的大小}DestStream:=TMemoryStream Create;{目標流 保存壓縮數據}SourceStream:=TCompressionStream Create(clMax DestStream);{構建壓縮流 採用最大化壓縮 並保存到目標流中}tryBmpStream SaveToStream(SourceStream);{壓縮點陣圖流}SourceStream Free;{完成壓縮 釋放壓縮流}BmpStream Clear;{清空原來點陣圖流}BmpStream WriteBuffer(Count Sizeof(Count));{將原來點陣圖的大小保存到新的點陣圖流中 以便使用}BmpStream CopyFrom(DestStream );{將壓縮數據附加到新的點陣圖流後面}BmpStream Position := ;NMStrm PostIt(BmpStream);{發送點陣圖流}finallyDestStream Free;BmpStream Destroy ;BitMap Destroy;DeleteDC(SourceDC);ReleaseDC(Bhandle SourceDC);end;{釋放有關資源}End;該過程得到整個屏幕的圖象拷貝 並利用壓縮流SourceStream和內存流 Deststream將點陣圖壓縮 並重新把點陣圖大小和壓縮數據流保存到點陣圖流中 發送出去 發送點陣圖大小的目的是在解壓前來確定需要的內存空間

lishixin/Article/program/Delphi/201311/24929

『柒』 誰會用delphi寫解壓程序(zip文件)

呵呵,如不雅安裝了winzip這個軟體,可以用它的dll來實現:wzcab3.dllwz32._initunzipunzip_._initCAB_.dllZAMEntryPoint1呵呵,這個由kingron供給的。

『捌』 Delphi 解壓文件的奇怪錯誤

可能是第一次使用完文件後,文件句柄還被佔用,嘗試使用完後釋放一下文件.

熱點內容
惠普筆記本開機密碼忘記了怎麼辦 發布:2025-02-13 16:47:47 瀏覽:994
html刪除資料庫資料庫 發布:2025-02-13 16:40:13 瀏覽:727
數據結構c語言版試題 發布:2025-02-13 16:40:12 瀏覽:771
海康演算法崗 發布:2025-02-13 16:39:20 瀏覽:687
微信瀏覽後的圖片緩存 發布:2025-02-13 16:39:18 瀏覽:681
歷史伺服器節點名怎麼查看 發布:2025-02-13 16:30:05 瀏覽:164
字典破解密碼失敗會顯示什麼 發布:2025-02-13 16:30:02 瀏覽:200
簡單的c語言編譯器 發布:2025-02-13 16:20:57 瀏覽:952
大眾空調登錄密碼多少 發布:2025-02-13 16:16:08 瀏覽:33
等差數列求和c語言 發布:2025-02-13 16:10:05 瀏覽:714