AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Code-Bibliothek Neuen Beitrag zur Code-Library hinzufügen Delphi (Indy) IdFTP: Prüfen ob ein Verzeichnis existiert
Thema durchsuchen
Ansicht
Themen-Optionen

(Indy) IdFTP: Prüfen ob ein Verzeichnis existiert

Ein Thema von MisterNiceGuy · begonnen am 29. Jan 2010 · letzter Beitrag vom 30. Jan 2010
 
Benutzerbild von MisterNiceGuy
MisterNiceGuy

Registriert seit: 1. Jul 2003
Ort: Mannheim
919 Beiträge
 
Delphi 7 Personal
 
#1

(Indy) IdFTP: Prüfen ob ein Verzeichnis existiert

  Alt 29. Jan 2010, 20:45
Hallo liebe Leute,
da schon häufiger gefragt wurde wie ich über die Indykomponente IdFTP abfrage ob ein Verzeichnis existiert habe ich
folgende Funktion geschrieben:

Delphi-Quellcode:
function ftpDirExists(ftp:TIdFTP; dir:String; fromRoot:boolean):boolean;
  var tempDir : String;
      tempDir2 : String;
      tempDir3 : String;
      extractedDirs : TStringList;
      tempList : TStringList;
      i : integer;
begin
  result := false;
  // connected?
  if not ftp.Connected then exit;

  if dir[length(dir)] <> '/then
    dir := dir + '/';

  // Initialize objects
  extractedDirs := TStringList.Create;
  tempList := TStringList.Create;

  // Store current dir
  tempDir := ftp.RetrieveCurrentDir;

  // go to the main dir if necessary
  if fromRoot then
    ftp.ChangeDir('/');
  tempDir3 := ftp.RetrieveCurrentDir;

  // extract all single directories in the dir path
  for i := 1 to length(dir) do
  begin
    if dir[i] = '/then
    begin
      if tempDir2 <> 'then
      begin
        extractedDirs.Add(tempDir2);
        tempDir2 := '';
      end;
    end
    else tempDir2 := tempDir2 + dir[i];
  end;

  // Get List for each depth and check if dir exists
  for i := 0 to extractedDirs.Count-1 do
  begin
    tempList.Clear;
    ftp.List(tempList,'*',false);
    if tempList.IndexOf(extractedDirs.Strings[i]) = -1 then
    begin
      result := false;
      exit;
    end
    else
    begin
      tempDir3 := tempDir3 + extractedDirs.Strings[i]+'/';
      ftp.ChangeDir(tempDir3);
    end;
  end;

  //Clear objects
  extractedDirs.Free;
  tempList.Free;
  ftp.ChangeDir(tempDir);
  result := true;
end;
Wichtig ist, dass das Verzeichnis das ihr durchsuchen wollt mit einem '/' beginnt und,
dass eine Verbindung zum FTP-Server besteht.

Ein Beispielaufruf würde so aussehen:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  IdFTP1.Username := 'padmalcom';
  IdFTP1.Password := 'blubb';
  IdFTP1.Host := 'www.myftp.de';
  if not IdFTP1.Connected then
    IdFTP1.Connect;
  if ftpDirExists(idFTP1, '/Backup/ftp tool/', true) then
    showmessage('true')
  else showmessage('false');
end;
Jonas
Wenn mich jemand sucht, ich bin im Kühlschrank!

Informationen über das Duale Studium
www.jofre.de
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:38 Uhr.
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