悬赏300!用VCLZIP,VCLUNZIP进行多张软盘的压缩和解压缩,有人能解决吗?(300分)

  • 主题发起人 主题发起人 zhang7859
  • 开始时间 开始时间
Z

zhang7859

Unregistered / Unconfirmed
GUEST, unregistred user!
用VCLZIP 控件,不知道如何用它将数据压缩到多张软盘上(分盘压缩),,并且如何用
VCLUNZIP 控件进行多张软盘的解压缩.请各位高手指教,谢谢!
在硬盘上进行分盘解压缩已经可以,但在软盘上怎样让它提示‘插入下一张盘’呢?
它总是不停的写下去,直到写满为止,最好给个例子!之前有过一帖,但没有详述!
(压缩后的文件大于 1.44MB 必须用多张软盘)
 
关注此问题。
 
在hdd可以的话,在fdd上也应该
看源代码,修改一下
 
VCLZip1.ZipName := ZipFileName;//压缩文件名如1.zip
If FileExists(ZipFileName) Then DeleteFile(ZipFileName);
VCLZip1.MultiZipInfo.MultiMode := mmBlocks;//多盘压缩
VCLZip1.MultiZipInfo.FirstBlockSize := 800000;//每盘大小
VCLZip1.MultiZipInfo.BlockSize := 800000;
For I:=0 To BlobFile.Count-1 Do//加入压缩文件
VCLZip1.FilesList.Add(Login_Frm.sysAppPath+'/Temp/'+BlobFile.Strings+'.Jpg');
VCLZip1.FilesList.Add(FileName+'.xml');
//VCLZip1.Recurse := True;
VCLZip1.Zip;//开始压缩
 
我刚解决这个问题,本来也想象以前的那个帖子上的人那样解决了就不把方法告诉大家的,
不过想想,既然来到这里,都是编程人,没什么好保密的,所以写出来让以后碰到同样问题
的人都能所帮助!呵呵,罗嗦了一大堆,进入正题吧!
Button1和Button2分别是压缩和解压按钮,在加入VCLZip1和VCLUnZip1控件。
procedure TForm1.Button1Click(Sender: TObject);
begin
With VCLZip1 do
begin
ZipName := 'A:/BACKUP.ZIP';
MultiZipInfo.MultiMode := mmSpan;
MultiZipInfo.WriteDiskLabels := True;
MultiZipInfo.SaveOnFirstDisk:=200000;
FilesList.Add('C:/temp/*.mp3');
Recurse := True;
try
Zip;
finally
showmessage('finish!');
end;
end;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
i:integer;
begin
With VCLUnZip1 do
begin
ZipName := 'A:/backup.zip';
CheckDiskLabels := True;
FilesList.clear;
FilesList.Add( '*.*' );
DoAll := true;
DestDir := 'c:/temp';
RecreateDirs := False;
RetainAttributes := True;
Unzip
end;
end;

//VCLZip1的OnGetNextDisk事件
procedure TForm1.VCLZip1GetNextDisk(Sender: TObject; NextDisk: Integer;
var FName: String);
var
MsgArray: String;
begin
MsgArray := '请插入' + IntToStr(NextDisk)+'号软盘!';
If MessageDlg(MsgArray,mtConfirmation,[mbOK,mbCancel],0) = mrCancel then
FName := '';
end;

你可以自己改进,如加入进度条显示,好了,要吃饭去了,饿死了!
 
不好,发现了点小错误,
procedure TForm1.Button2Click(Sender: TObject);
中的
var
i:integer;
请删除掉:),看来是饿晕了!
 
后退
顶部