Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi idFTP Server (https://www.delphipraxis.net/58736-idftp-server.html)

F.Art 11. Dez 2005 22:44


idFTP Server
 
Bei dieser Procedure kann ich das Verzeichnis mit DirectoryOpus lesen

Code:
procedure TForm1.FTPServerListDirectory(ASender: TIdFTPServerThread;
  const APath: String; ADirectoryListing: TIdFTPListItems);
var LItem: TidFTPListItem;  
    tmp1: TSearchRec;  
    LFileAttribute: Integer;  
    LPfad: String;  
begin  
  LPfad := 'D:\';  
  LFileAttribute := FILE_ATTRIBUTE_DIRECTORY + FILE_ATTRIBUTE_HIDDEN + FILE_ATTRIBUTE_SYSTEM;  
  if FindFirst(LPfad + '*', LFileAttribute, tmp1) = 0 then  
  begin  
    repeat    
      if (tmp1.Name <> '.') and (tmp1.Name <> '..') then    
      begin    
        LItem := ADirectoryListing.Add;    
        LItem.FileName := tmp1.Name;    
        LItem.Size := tmp1.Size;    
        LItem.OwnerName := 'Username';    
        LItem.GroupName := 'Groupname';    
        LItem.OwnerPermissions := 'rwx';    
        LItem.GroupPermissions := 'rwx';    
        LItem.UserPermissions := 'rwx';    
        if DirectoryExists(LPfad + tmp1.Name) then    
           LItem.ItemType := ditDirectory    
        else    
           LItem.ItemType := idftplist.ditFile;    
      end;    
    until FindNext(tmp1) <> 0;    
  end;    
  FindClose(tmp1);    
end;
Bei dieser Procedure kann nur der InternetExplorer die Verzeichnise lesen

Code:
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;

 
procedure TForm1.FTPServerListDirectory(ASender: TIdFTPServerThread;
  const APath: String; ADirectoryListing: TIdFTPListItems);
var
  f: tsearchrec;
  a: integer;
begin
ADirectoryListing.DirectoryName := apath;
a := FindFirst( TransLatePath( apath, ASender.HomeDir ) + '*.*', faAnyFile, f ) ;
while ( a = 0 ) do begin
  if ( f.Attr and faDirectory > 0 ) then
     AddlistItem( ADirectoryListing, f.Name, ditDirectory, f.size, FileDateToDateTime( f.Time ) )
     else
     AddlistItem( ADirectoryListing, f.Name, ditFile, f.size, FileDateToDateTime( f.Time ) ) ;
     a := FindNext( f ) ;
     end;
  FindClose( f ) ;
end;
Was muss bei der 2ten Procedur geändert werden damit es die Wirkung von der Ersten hat?


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:54 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz