Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Indy10 - Seltsames ChangeDir (https://www.delphipraxis.net/115670-indy10-seltsames-changedir.html)

hsbc 16. Jun 2008 06:31


Indy10 - Seltsames ChangeDir
 
Hallo allerseits,

langsam, aber sicher verzweifle ich an dem Verhalten von Indy. Folgendes Problem:

Delphi-Quellcode:
function TF_FTP.VerzeichnisWechsel(Sender: TObject; s: string): boolean;
var
  ok: boolean;
  tmp: string;
begin
    tmp := s;

    try
      IdFTP2.ChangeDir(s);
      ok := true;
    except
      ok := false;
    end;

    result := tmp = s;

end;
Dies ist im Prinzip meine Routine zum Verzeichniswechsel.

Wenn das Verzeichnis bereits besteht, funktioniert alles einwandfrei. Wenn das Serververzeichnis noch nicht besteht, ist trotzdem das ok auf true gesetzt und noch seltsamer ist das Verhalten der Variable tmp:

Diese setze ich am Beginn der Routine auf den gleichen Wert wie s.
Nach dem ChangeDir enthält s den Wert, auf welchen tatsächlich geändert wurde. Gleichzeitig wird auch die Variable tmp auf den gleichen Wert von s verändert ??? Die Variable ok ist in jedem Fall immer true.

Wie ist so was möglich?

Ich bin nicht imstande, einen kontrollierten Verzeichniswechsel durchzuführen, wo ich bei Erfolg true und bei Nichterfolg false zurückbekomme.

Was mache ich hier falsch, bzw. wie kann ich einen kontrollierten Verzeichniswechsel realisieren?

mfg
Herbert

Klaus01 16. Jun 2008 07:57

Re: Indy10 - Seltsames ChangeDir
 
Guten Morgen,

hast Du Dich schon mal manuell auf dem Server angemeldet und
geschaut was passiert wenn Du in ein nicht existierendes Verzeichnis wechselst.

Lauf der Indy Doku wird eine Exception ausgelöst wenn das Verzeichnis nicht vorhanden ist.

Grüße
Klaus

hsbc 16. Jun 2008 16:20

Re: Indy10 - Seltsames ChangeDir
 
Hallo Klaus,

der Fehler lag scheinbar in einer verschachtelten Schleife. Hier dürfte Probleme geben, wenn mehrfach auf Indy zugegriffen wird. Konnte das mittlerweile beheben.

mfg
Herbert


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:06 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