On Thu, 26 May 2016 12:43:05 +0200, Bo Berglund <bo.bergl...@gmail.com> wrote:
>I got a suggestion from the Embarcadero >forum to check Synopse and there I found a single file (plus an inc) >solution to my problem. >I downloaded the PasZip.pas and Synopse.inc files from this location: >http://synopse.info/fossil/dir?ci=tip >This is the function I ended up with and it works just fine: > > >function TSSCommHandler.ZipFiles(TargetFile: string; FileList: >TStringList): boolean; >{This function uses the Synopse files PasZip.pas and Synopse.inc to >create the zipfile. >Files were obtained from http://synopse.info/fossil/dir?ci=tip} >var > ZW: TZipWrite; > i: integer; > FileName: string; >begin > Result := false; > ZW := TZipWrite.Create(TargetFile); > try > try > for i := 0 to FileList.Count-1 do > begin > FileName := FileList[i]; > if not FileExists(FileName) then Continue; > ZW.AddDeflated(FileName); > end; > Result := true; > except > on E: Exception do > begin > FLastError := 'Zip error: ' + E.Message; > exit; > end; > end; > finally > ZW.Free; > end; >end; > >I am only interested in the creation of the zipfile, but there is a >reader class available too. I have a question on regards to this PasZip unit: In the function above the supplied files wind up in the zip archive as intended, but I would like to improve it just a little bit by also setting the extract dir to the name of the zipfile. So if the zip is named PP1.zip I want the contents to be extracted to subdir PP1 in the dir where the zip is located. Is there anyone here who has used PasZip.pas from Synopse and have a solution? -- Bo Berglund Developer in Sweden _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal