123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- program fpzipper;
- {$mode objfpc}{$H+}
- uses
- {$IFDEF UNIX}{$IFDEF UseCThreads}
- cthreads,
- {$ENDIF}{$ENDIF}
- Classes, SysUtils, CustApp, zipper
- { you can add units after this };
- type
- { TFPUnZipApplication }
- TFPUnZipApplication = class(TCustomApplication)
- Private
- FUnZipper: TUnZipper;
- FFiles : TStrings;
- protected
- procedure DoRun; override;
- public
- constructor Create(TheOwner: TComponent); override;
- destructor Destroy; override;
- procedure WriteHelp; virtual;
- end;
- { TFPUnZipApplication }
- procedure TFPUnZipApplication.DoRun;
- Var
- I : Integer;
- F : TFileStream;
- begin
- If ParamCount<1 then
- begin
- Writeln('Usage ',ParamStr(0),' zipfile [file1 [file2 [...]]]');
- Terminate;
- exit;
- end;
- FUnZipper.FileName:=ParamStr(1);
- FUnZipper.UseUTF8:=True;
- FUnZipper.Examine;
- if ParamCount=1 then
- FUnZipper.UnZipAllFiles
- else
- For I:=2 to ParamCount do
- FFiles.Add(ParamStr(I));
- FUnZipper.UnZipFiles(FFiles);
- Terminate;
- end;
- constructor TFPUnZipApplication.Create(TheOwner: TComponent);
- begin
- inherited Create(TheOwner);
- StopOnException:=True;
- FUnZipper:=TUnZipper.Create;
- FFiles:=TStringList.Create;
- end;
- destructor TFPUnZipApplication.Destroy;
- begin
- FreeAndNil(FFiles);
- FreeAndNil(FUNZipper);
- inherited Destroy;
- end;
- procedure TFPUnZipApplication.WriteHelp;
- begin
- { add your help code here }
- writeln('Usage: ',ExeName,' -h');
- end;
- var
- Application: TFPUnZipApplication;
- begin
- Application:=TFPUnZipApplication.Create(nil);
- Application.Title:='UnZip application';
- Application.Run;
- Application.Free;
- end.
|