当前位置:首页 » 文件管理 » delphi解压文件

delphi解压文件

发布时间: 2022-09-04 13:23:59

Ⅰ Delphi 解压文件的奇怪错误

可能是第一次使用完文件后,文件句柄还被占用,尝试使用完后释放一下文件.

Ⅱ 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;

Ⅲ 求delphi 解压文件方法【请注意,不是调用winrar来解压】

不用调用rar用rar里面提供的控件就可以了,或者用7z控件,不用控件应该不可能实现

Ⅳ delphi解压文件问题

呵呵,,我给你一个解决的办法吧,看你的代码就知道你是下载VCLZIP组件。。
建议你用VCLunzip组件:解压代码如下:
UnZip1.ZipName:='c:\Upx.zip';//zip所在目录
UnZip1.ReadZip;
UnZip1.FilesList.Add('*.*');
UnZip1.FilesList.Add(UnZip1.Filename[UnZip1.Count-1] );
UnZip1.DoAll:=false;
UnZip1.DestDir:='c:\';//指定目录
UnZip1.RecreateDirs := True;
UnZip1.RetainAttributes := True;
UnZip1.UnZip;

要设置解压时替换原有的文件不弹出提示框,其实很简单在OverwriteMode属性设成Always就可以了!!

Ⅳ 在DELPHI中如何实现文件的“压缩和解压”

Delphi自带有压缩包,但是,没有安装,我写了个调用程序,如果你需要,我的Email
:
[email protected]

Ⅵ 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的VCLZip控件的解压问题

ziper.DoAll := True;
ziper.OverwriteMode := Always;
ziper.RelativePaths:=true;//是否保持目录结构
ziper.AddDirEntriesOnRecurse:=true;
ziper.RecreateDirs:=true;//创建目录

加上这几句应该就行了。
vclzip在delphi2010中是无法使用的,在d7中可以正常使用。如果想在d2010中使用,建议在d7下把这些函数封装成dll,在2010中调用即可。

Ⅷ delphi如何解压文件

procere TForm1.Button5Click(Sender: TObject);
begin
With myZip do
begin
ZipName := inzip.Text;//ZIP文件名
Destdir:=outdir.Text;//解压到的目录
FilesList.Add('*.*');
DoAll := true;
if incpw.Checked then
password:=pwe.Text;//密码
Recurse := True; //* Recurse directories */
StorePaths := true; //* Keep path information */
DoAll := False;
unzip;
end;
end;

Ⅸ delphi XE 10 解压压缩文件

没有的,可以在前端要求加个判断格式,只有ZIP的才行。或都把.rar的自己转换成zip

Ⅹ 如何使用delphi调用7zip压缩解压缩

e 解压压缩文件到当前目录

忽略路径解压压缩的文件到当前或指定的文件夹。此命令行对应的是 压缩文件管理 命令 解压到指定文件夹 并在 解压路径和选项对话框 “不解压路径”的选项是启用时。

例子:
在当前文件夹,从全部的 RAR 压缩文件解压所有的 *.doc 文件到当前文件夹
WinRAR e *.rar *.doc

热点内容
网站架设多服务器ip 发布:2024-10-12 07:42:15 浏览:187
linuxjdbc 发布:2024-10-12 07:38:10 浏览:197
pythonip正则表达式 发布:2024-10-12 07:30:24 浏览:178
xp怎么认安卓手机 发布:2024-10-12 07:30:20 浏览:878
pythonmac开发工具 发布:2024-10-12 07:29:01 浏览:267
android字符数组 发布:2024-10-12 07:16:32 浏览:307
买安卓手机选什么颜色 发布:2024-10-12 07:10:51 浏览:698
已经连接的wifi怎么看密码 发布:2024-10-12 07:06:07 浏览:59
sae上传失败 发布:2024-10-12 07:03:20 浏览:958
如何在服务器上玩ai换脸 发布:2024-10-12 06:43:47 浏览:913