Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi ftp komplettes verzeichniss mit subdirs und files löschen (https://www.delphipraxis.net/93867-ftp-komplettes-verzeichniss-mit-subdirs-und-files-loeschen.html)

agm65 14. Jun 2007 08:33

Re: ftp komplettes verzeichniss mit subdirs und files lösche
 
tag 3 und leider alles ohne erfolg...wer erbarmt sich denn mal... ? ;)

Luckie 14. Jun 2007 08:51

Re: ftp komplettes verzeichniss mit subdirs und files lösche
 
Dann zeig doch endlich mal, was du bisher mit den Indys zustande gebracht hast. Letzendlich musst du nur den rekursiven Code aus deinem ersten Posting für die Indys anpassen.

agm65 14. Jun 2007 09:02

Re: ftp komplettes verzeichniss mit subdirs und files lösche
 
das ist ja das problem ich habe es nichtmal ansatzweise geschaft den ersten source mit den indys zu kreuzen ..dabei brauche ich ja hilfe..danke dir luckie das du hier nochmal reinschaust

ddcool 25. Mär 2008 15:14

Re: ftp komplettes verzeichniss mit subdirs und files lösche
 
Hallo,

falls du es noch immer nicht hinbekommen haben solltest. Ich brauchte heute auch die Möglichkeit, alle Dateien eines FTP-Verzeichnisses incl. Unterverzeichnisse aufzulisten. Hier hast du die umgeschriebene Prozedur:

Delphi-Quellcode:
procedure FindAllFilesFTP(FTPCon: TIdFTP; Directory: String; FileList,DirList: TStrings; WithSubDirs, ClearList: Boolean);
  procedure ScanDir(const Directory,SubDir: String; WithDir: Boolean);
  var
    i: Integer;
  begin
    FTPCon.ChangeDir(Directory + SubDir);
    FTPCon.List;
    for i := 2 to FTPCon.DirectoryListing.Count-1 do
      if FTPCon.DirectoryListing.Items[i].ItemType = ditFile then
      begin
        if WithDir then FileList.Add(SubDir + FTPCon.DirectoryListing.Items[i].FileName)
        else FileList.Add(FTPCon.DirectoryListing.Items[i].FileName);
      end else if FTPCon.DirectoryListing.Items[i].ItemType = ditDirectory then
        DirList.Add(SubDir + FTPCon.DirectoryListing.Items[i].FileName + '/');

    if WithSubDirs then
    begin
      for i := 2 to FTPCon.DirectoryListing.Count-1 do
        if FTPCon.DirectoryListing.Items[i].ItemType = ditDirectory then
          ScanDir(Directory + SubDir,FTPCon.DirectoryListing.Items[i].FileName + '/',True);
    end;
  end;

begin
  if not FTPCon.Connected then Exit;
  FileList.BeginUpdate;
  DirList.BeginUpdate;
  try
    if ClearList then
    begin
      FileList.Clear;
      DirList.Clear;
    end;
    if Directory = '' then Exit;
    if Directory[Length(Directory)] <> '/' then
      Directory := Directory + '/';
    ScanDir(Directory,'',False);
  finally
    DirList.EndUpdate;
    FileList.EndUpdate;
  end;
end;
Das war nun wirklich nicht schwer. Du musst der Prozedur eine FTP-Instanz übergeben. Was noch wichtig ist, vorher bitte folgendes fest einstellen: FTPCon.UseMLIS := True;
Und in die uses der Unit "IdAllFTPListParsers" eintragen.
WICHTIG: Ist für Indy 10 geschrieben!!!
Viel Spaß damit.
Grüße ddcool


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:22 Uhr.
Seite 3 von 3     123   

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