我尝试了很多代码,但它们似乎都没有按我想要的方式工作。
如何保存所有路径,zlib(不需要压缩,只需将所有文件添加到数据块就可以了)文件夹中的所有文件和子目录(但不是文件夹本身),因此它会将它们提取到所有正确的路径而不是将所有内容转储到同一个文件夹中。
我有jvcl代码,但它不压缩子文件夹。
procedure TJvZLibMultipleMainForm.btnCompressClick(Sender: TObject);
var
z : TJvZlibMultiple;
begin
ForceDirectories(ExtractFilePath(edFilename.Text));
z := TJvZlibMultiple.Create(nil);
Screen.Cursor := crHourGlass;
try
lblFilename.Caption := '';
pbProgress.Position := 0;
z.OnProgress := DoProgress;
z.OnCompressingFile := DoCompressFile;
z.CompressDirectory(edSrcFolder.Text,false,edFilename.Text);
finally
z.Free;
Screen.Cursor := crDefault;
end;
pbProgress.Position := 0;
lblFilename.Caption := 'Ready';
end;
答案 0 :(得分:5)
如果要压缩子文件夹,必须更改此行
z.CompressDirectory(edSrcFolder.Text,False,edFilename.Text);
到
z.CompressDirectory(edSrcFolder.Text,True,edFilename.Text);
以递归方式激活压缩。
// compresses a Directory (recursing if Recursive is true)
// and saves the compressed result to FileName
procedure CompressDirectory(Directory: string; Recursive: Boolean; FileName: string); overload;
再见。