5,392
社区成员
发帖
与我相关
我的任务
分享
unit sync;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,
IdFTP, StdCtrls, RzButton;
type
TForm1 = class(TForm)
FTPClient: TIdFTP;
RzBitBtn1: TRzBitBtn;
procedure RzBitBtn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
const
Model = 'yyyy/mm/dd,hh:mm:ss';
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure FindRemoteDir(var idFTP: TIdFtp; RemoteDir: string; var filename,
filesize, filetime: Tstrings);
var
i, DirCount: integer;
sName: string;
begin
idFTP.RetrieveCurrentDir;
idFTP.ChangeDir(RemoteDir);
idFTP.List(nil);
DirCount := idFTP.DirectoryListing.Count;
if DirCount = 0 then
begin
idFTP.ChangeDirUp;
idFTP.List(nil);
Exit;
end;
for i := 0 to DirCount - 1 do
begin
if DirCount <> idFTP.DirectoryListing.Count then
begin
repeat
idFTP.ChangeDirUp;
idFTP.List(nil);
Application.ProcessMessages;
until DirCount = idFTP.DirectoryListing.Count;
Exit;
end;
if idFTP.DirectoryListing.Items[i].ItemType = ditDirectory then//这句编译不过,提示ditDirectory未定义
Remotefindall(idFTP, idFTP.RetrieveCurrentDir + '\' + idFTP.DirectoryListing.Items[i].FileName, filename, filesize, filetime)
else
begin
sName := RemoteDir + '\' + idFTP.DirectoryListing.Items[i].FileName;
sName := MidStr(sName, iwidth + 1, length(sName) - iwidth + 1);
filename.add(sName);
filesize.add(inttostr(idFTP.DirectoryListing.Items[i].Size));
filetime.Add(FormatDateTime(Model, idFTP.DirectoryListing.Items[i].ModifiedDate));
end;
end;
Application.ProcessMessages;
if i = DirCount - 1 then
begin
idFTP.ChangeDirUp;
idFTP.List(nil);
end;
end;
procedure TForm1.RzBitBtn1Click(Sender: TObject);
begin
FTPClient.Username := 'Login=tranuser';
FTPClient.Password := '8653635';
FTPClient.Port := 21;
FTPClient.Connect();
end;
end.