ftptest.pas 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. program FTPTest;
  2. uses
  3. FTPApi;
  4. const
  5. TstName1 = 'FTPTEST1';
  6. TstName2 = 'FTPTEST2';
  7. {$IFDEF USECON}
  8. ListName = 'CON';
  9. (* Using output file name 'CON' here causes output directly to console. *)
  10. {$ELSE USECON}
  11. ListName = 'FTP.LST';
  12. {$ENDIF USECON}
  13. TstText = 'This is a sample test file for FTPTest'#13#10'check it for yourself.';
  14. var
  15. Hst, Usr, Pwd: string;
  16. T: text;
  17. L: longint;
  18. S: string;
  19. begin
  20. if ParamCount < 1 then
  21. begin
  22. WriteLn ('Syntax: FTPTest <host_name> [<user_name> [<password>]] ' + LineEnding + LineEnding +
  23. ' User "anonymous" is used if no user name is supplied on command line,' + LineEnding +
  24. ' password is being asked for if omitted');
  25. Halt (1);
  26. end;
  27. WriteLn;
  28. Hst := ParamStr (1);
  29. if ParamCount > 1 then
  30. begin
  31. Usr := ParamStr (2);
  32. if ParamCount > 2 then Pwd := ParamStr (3) else
  33. begin
  34. Write ('Password for user "' + Usr + '" (it _will_ be displayed on screen!): ');
  35. ReadLn (Pwd);
  36. end;
  37. end else
  38. begin
  39. Usr := 'anonymous';
  40. Pwd := '[email protected]';
  41. end;
  42. Write ('Preparing test file ' + TstName1 + '... ');
  43. Assign (T, TstName1);
  44. Rewrite (T);
  45. WriteLn (T, TstText);
  46. Close (T);
  47. WriteLn ('done');
  48. FtpVer (S);
  49. WriteLn ('FTPAPI.DLL was compiled ', S);
  50. FtpSetUser (Hst, Usr, Pwd, '');
  51. WriteLn ('Finding out the current directory on "', Hst, '"...');
  52. L := FtpPwd (S);
  53. if L = 0 then WriteLn (S);
  54. WriteLn ('RC = ', L);
  55. Write ('The remote system is ');
  56. L := FtpSys (S);
  57. if L = 0 then WriteLn (S);
  58. WriteLn ('RC = ', L);
  59. WriteLn ('Switching to binary');
  60. FtpSetBinary (T_BINARY);
  61. Write ('Uploading "' + TstName1 + '" to "' + Hst + '" as "' + TstName2 + '"... ');
  62. WriteLn ('RC = ', FtpPut (TstName1, TstName2));
  63. WriteLn ('Getting dir listing from "' + Hst + '" to "' + ListName + '"... ');
  64. L := FtpDir (ListName, '');
  65. {$IFNDEF USECON}
  66. if L = 0 then
  67. begin
  68. Assign (T, ListName);
  69. Reset (T);
  70. while not (Eof (T)) do
  71. begin
  72. ReadLn (T, S);
  73. WriteLn (S);
  74. end;
  75. Close (T);
  76. end;
  77. {$ENDIF USECON}
  78. WriteLn ('RC = ', L);
  79. Write ('Downloading "' + TstName2 + '"... ');
  80. WriteLn ('RC = ', FtpGet (TstName2, TstName2, 'w'));
  81. Write ('Setting time of the downloaded file to that one on server... ');
  82. WriteLn ('Result = ', Keep_File_Date (TstName2, TstName2));
  83. Write ('Removing "', TstName2, '" again from "', Hst, '"... ');
  84. WriteLn ('RC = ', FtpDelete (TstName2));
  85. Write ('Closing all connections... ');
  86. FtpLogoff;
  87. WriteLn ('done.');
  88. WriteLn (LineEnding + 'Finished.');
  89. end.