fpunzipper.lpr 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. program fpzipper;
  2. {$mode objfpc}{$H+}
  3. uses
  4. {$IFDEF UNIX}{$IFDEF UseCThreads}
  5. cthreads,
  6. {$ENDIF}{$ENDIF}
  7. Classes, SysUtils, CustApp, zipper
  8. { you can add units after this };
  9. type
  10. { TFPUnZipApplication }
  11. TFPUnZipApplication = class(TCustomApplication)
  12. Private
  13. FUnZipper: TUnZipper;
  14. FFiles : TStrings;
  15. protected
  16. procedure DoRun; override;
  17. public
  18. constructor Create(TheOwner: TComponent); override;
  19. destructor Destroy; override;
  20. procedure WriteHelp; virtual;
  21. end;
  22. { TFPUnZipApplication }
  23. procedure TFPUnZipApplication.DoRun;
  24. Var
  25. I : Integer;
  26. F : TFileStream;
  27. begin
  28. If ParamCount<=1 then
  29. begin
  30. Writeln('Usage ',ParamStr(0),' zipfile file1 [file2 [...]]');
  31. Terminate;
  32. exit;
  33. end;
  34. FUnZipper.FileName:=ParamStr(1);
  35. FUnZipper.Examine;
  36. For I:=2 to ParamCount do
  37. FFiles.Add(ParamStr(I));
  38. FUnZipper.UnZipFiles(FFiles);
  39. Terminate;
  40. end;
  41. constructor TFPUnZipApplication.Create(TheOwner: TComponent);
  42. begin
  43. inherited Create(TheOwner);
  44. StopOnException:=True;
  45. FUnZipper:=TUnZipper.Create;
  46. FFiles:=TStringList.Create;
  47. end;
  48. destructor TFPUnZipApplication.Destroy;
  49. begin
  50. FreeAndNil(FFiles);
  51. FreeAndNil(FUNZipper);
  52. inherited Destroy;
  53. end;
  54. procedure TFPUnZipApplication.WriteHelp;
  55. begin
  56. { add your help code here }
  57. writeln('Usage: ',ExeName,' -h');
  58. end;
  59. var
  60. Application: TFPUnZipApplication;
  61. begin
  62. Application:=TFPUnZipApplication.Create(nil);
  63. Application.Title:='UnZip application';
  64. Application.Run;
  65. Application.Free;
  66. end.