Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi DirectoryExists und IncludeTrailingPathDelimiter (https://www.delphipraxis.net/149914-directoryexists-und-includetrailingpathdelimiter.html)

Helmi 2. Apr 2010 09:43


DirectoryExists und IncludeTrailingPathDelimiter
 
Hallo,

ich hatte in einem Projekt mal festgestellt, dass DirectoryExists true liefert, wenn ein leerer String in die Function IncludeTrailingPathDelimiter gelegt wird.

Deswegen hab ich mir mal schnell ein Testprojekt gebastelt um rauszufinden ob das wirklich so ist, oder ob ich in meinem Projekt einen Fehler gemacht habe.
Dazu folgender Code:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  S: String;

begin
  S := '';

  CheckBox1.Checked := DirectoryExists(IncludeTrailingPathDelimiter(S));
end;
Interessanterweise wird die checkBox true. Das würde bedeuten, dass der leere String mit dem Backslash auf einen Ordner verweisst.
Aber auf welchen? - Ich hab ja die Mutter aller Ordner im Verdacht: den Desktop

DeddyH 2. Apr 2010 09:56

Re: DirectoryExists und IncludeTrailingPathDelimiter
 
Unter DOS war das das Wurzelverzeichnis des aktuellen Laufwerks. Ich denke, das dürfte immer noch so sein.

himitsu 2. Apr 2010 09:59

Re: DirectoryExists und IncludeTrailingPathDelimiter
 
Ein '' müßte das aktuelle Verzeichnis sein und dieses muß ja zwangsläufig existieren.

'' wäre ein relaiver Pfad auf sich selber und dürfte quasi einem '.' entsprechen.

DeddyH 2. Apr 2010 10:07

Re: DirectoryExists und IncludeTrailingPathDelimiter
 
Ich habe es gerade einmal getestet und ein FindAllFiles auf das Verzeichnis losgelassen. Mir wurde das Wurzelverzeichnis von C: gelistet.

himitsu 2. Apr 2010 10:11

Re: DirectoryExists und IncludeTrailingPathDelimiter
 
Sehr interessant ... ich hätte es anders vermutet, so ala
Zitat:

'' = aktueller Pfad
'xyz' = Unterverzeichnis des aktuellen Pfades
Aber vermutlich ist es dann einfach soein "wir müssen unbedingt DOS-kompatibel bleiben"-Ding. :angel2:


Obwohl ...

Zitat:

'\xyz' = Unterverzeichnis des Hauptverzeichnisses
ich glaub es ist also doch richtig :oops:

DeddyH 2. Apr 2010 10:13

Re: DirectoryExists und IncludeTrailingPathDelimiter
 
Nee, aktueller Pfad wäre ja '.' und nicht ''. Mom, ich teste mal schnell.

[edit] Stimmt, mit Punkt bekomme ich das eigene Verzeichnis, wie erwartet. [/edit]

Helmi 2. Apr 2010 10:16

Re: DirectoryExists und IncludeTrailingPathDelimiter
 
Danke für die Antworten!

Das heisst jetzt für mich ich muss IncludeTrailingPathDelimiter erst einsetzen, nachdem DirectoryExists true liefert.

DeddyH 2. Apr 2010 10:17

Re: DirectoryExists und IncludeTrailingPathDelimiter
 
Oder einfach dafür sorgen, dass der Verzeichnisstring nicht leer ist.

himitsu 2. Apr 2010 10:22

Re: DirectoryExists und IncludeTrailingPathDelimiter
 
Delphi-Quellcode:
CheckBox1.Checked := (S <> '') and DirectoryExists(ExcludeTrailingPathDelimiter(S));
PS: wenn, dann Exclude... (k.A. ob DirectoryExists dieses schon eingebaut hat)

DeddyH 2. Apr 2010 10:24

Re: DirectoryExists und IncludeTrailingPathDelimiter
 
Zitat:

Zitat von himitsu
(k.A. ob DirectoryExists dieses schon eingebaut hat)

Den Gegenbeweis haben wir doch eben erbracht ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:02 Uhr.
Seite 1 von 2  1 2      

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