Forum > General
Compress all files in the local directory without the problem of the local direc
(1/1)
jianwt:
I have a folder "temp" with 4 files in it. temp\1 , temp\2\324 ,temp\3,temp\4\N;
I want to compress all files (including folders) in the temp folder, but the forum code I refer to will compress the temp folder together. I only want to compress the 1;2\324;3;4\N files into a compressed package separately, not together with the temp folder. That is to say, you can only see 4 files when you open the compressed package, instead of seeing the temp folder, and you can see 4 files when you enter.
Network translation, I don't know if I understand, thank you first.
--- Code: Pascal [+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i < x.length; i++) { x[i].style.maxHeight='none'; x[i].style.height = Math.min(x[i].clientHeight+15,306)+'px'; x[i].style.resize = "vertical";}};} ---var DataBack_upFileName: string; AZipper: TZipper; szPathEntry: string; i: integer; ZEntries: TZipFileEntries; TheFileList: TStringList; RelativeDirectory: string;begin SaveDialog1.Filter := ' zip压缩文件(*.zip)|*.zip'; SaveDialog1.Title := '选择zip压缩路径和文件名'; if SaveDialog1.Execute then begin if SaveDialog1.FileName='' then begin exit; end else begin try AZipper := TZipper.Create; try try RelativeDirectory:=ExtractFilePath(ParamStr(0)) + 'temp\'; AZipper.Clear; ZEntries := TZipFileEntries.Create(TZipFileEntry); If DirPathExists(RelativeDirectory) then begin i:=RPos(PathDelim,ChompPathDelim(RelativeDirectory)); szPathEntry:=LeftStr(RelativeDirectory,i); TheFileList:=TstringList.Create; try FindAllFiles(TheFileList, RelativeDirectory); for i:=0 to TheFileList.Count -1 do begin ZEntries.AddFileEntry(TheFileList[i],CreateRelativePath(TheFileList[i],szPathEntry)); end; finally if Assigned(TheFileList) then FreeAndNil(TheFileList); //TheFileList.Free; end; end; if (ZEntries.Count > 0) then AZipper.ZipFiles(ZEntries); except On E: EZipError do E.CreateFmt('无法创建zip文件%原因: %s', [LineEnding, E.Message]) end; finally if Assigned(ZEntries) then FreeAndNil(ZEntries); if Assigned(AZipper) then FreeAndNil(AZipper); end; Application.MessageBox('数据压缩成功!!', '提示!', mb_OK); except Application.MessageBox('数据压缩失败!!', '错误提示!', MB_ICONERROR + mb_OK); end; end; end; end;
jianwt:
It's solved with this method!
https://forum.lazarus.freepascal.org/index.php/topic,39475.msg271157.html#msg271157
Navigation
[0] Message Index