procedure TForm1.IdFTPServer1ListDirectory(ASender: TIdFTPServerThread;
const APath: String; ADirectoryListing: TIdFTPListItems);
procedure AddlistItem( aDirectoryListing: TIdFTPListItems; Filename:string; ItemType: TIdDirItemType; size: int64; date: tdatetime ) ;
var
listitem: TIdFTPListItem;
begin
listitem := aDirectoryListing.Add;
listitem.ItemType := ItemType;
listitem.FileName := Filename;
listitem.OwnerName := 'anonymous';
listitem.GroupName := 'all';
listitem.OwnerPermissions := '---';
listitem.GroupPermissions := '---';
listitem.UserPermissions := '---';
listitem.Size := size;
listitem.ModifiedDate := date;
end;var
DirInfo: tsearchrec;
FindResult,i: integer;
Temp:PChar;
begin
ADirectoryListing.DirectoryName := apath;
FindResult := FindFirst( WorkDirectory.Text+APath+'*.*',faAnyFile, DirInfo ) ;
while ( FindResult = 0 ) do
begin
if ( DirInfo.Attr and faDirectory > 0 ) then
AddlistItem( ADirectoryListing, DirInfo.Name, ditDirectory, DirInfo.size,FileDateToDateTime( DirInfo.Time ) )
//如果结果是目录
else
AddlistItem( ADirectoryListing, DirInfo.Name, ditFile, DirInfo.size,FileDateToDateTime( DirInfo.Time ) ) ;
FindResult := FindNext( DirInfo ) ;
end;
FindClose( DirInfo ) ;
//查看结束关闭相应的查找过程
end;我用flashFXP登陆 列举FTP服务器为空,请问代码错在哪里?
const APath: String; ADirectoryListing: TIdFTPListItems);
procedure AddlistItem( aDirectoryListing: TIdFTPListItems; Filename:string; ItemType: TIdDirItemType; size: int64; date: tdatetime ) ;
var
listitem: TIdFTPListItem;
begin
listitem := aDirectoryListing.Add;
listitem.ItemType := ItemType;
listitem.FileName := Filename;
listitem.OwnerName := 'anonymous';
listitem.GroupName := 'all';
listitem.OwnerPermissions := '---';
listitem.GroupPermissions := '---';
listitem.UserPermissions := '---';
listitem.Size := size;
listitem.ModifiedDate := date;
end;var
DirInfo: tsearchrec;
FindResult,i: integer;
Temp:PChar;
begin
ADirectoryListing.DirectoryName := apath;
FindResult := FindFirst( WorkDirectory.Text+APath+'*.*',faAnyFile, DirInfo ) ;
while ( FindResult = 0 ) do
begin
if ( DirInfo.Attr and faDirectory > 0 ) then
AddlistItem( ADirectoryListing, DirInfo.Name, ditDirectory, DirInfo.size,FileDateToDateTime( DirInfo.Time ) )
//如果结果是目录
else
AddlistItem( ADirectoryListing, DirInfo.Name, ditFile, DirInfo.size,FileDateToDateTime( DirInfo.Time ) ) ;
FindResult := FindNext( DirInfo ) ;
end;
FindClose( DirInfo ) ;
//查看结束关闭相应的查找过程
end;我用flashFXP登陆 列举FTP服务器为空,请问代码错在哪里?
AFolder: string);
var
w32fd: TWin32FindData;
h: THandle;
lTime: TFileTime;
sTime: TSystemTime;
begin
if not DirectoryExists(AFolder) then Exit;
if AFolder[Length(AFolder)] = '\'
then AFolder := AFolder + '*.*'
else AFolder := AFolder + '\*.*';
h := Windows.FindFirstFile(PChar(AFolder), w32fd);
while h <> INVALID_HANDLE_VALUE do
begin
with ADirectoryListing.Add, w32fd do
begin
FileName := ExtractFileName(cFileName);
if (dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY) = 0
then ItemType := ditFile
else ItemType := ditDirectory;
Size := nFileSizeHigh * MAXDWORD + nFileSizeLow;
FileTimeToLocalFileTime(ftCreationTime, lTime);
if FileTimeToSystemTime(lTime, sTime)
then ModifiedDate := EncodeDate(sTime.wYear, sTime.wMonth, sTime.wDay) + EncodeTime(sTime.wHour, sTime.wMinute, sTime.wSecond, sTime.wMilliSeconds)
else ModifiedDate := Now;
GroupName := vft_FTP;
OwnerName := vft_FTP;
UserPermissions := 'rw-';
GroupPermissions := 'rw-';
OwnerPermissions := 'rw-';
end;
if not Windows.FindNextFile(h, w32fd) then Break;
end;
Windows.FindClose(h);
end;procedure TdmVFTPServer.FTPServerListDirectory(ASender: TIdFTPServerThread;
const APath: String; ADirectoryListing: TIdFTPListItems);...
AddFTPFileList(ADirectoryListing, ConvertFTPPathToLocalPath(APath, false));
...呵呵,上面的就行的:)
LYFTP也不错的
_____________________
http://lysoft.7u7.net