Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi prüfen ob pfad existiert (z.B. 'c:\') (https://www.delphipraxis.net/42900-pruefen-ob-pfad-existiert-z-b-c-%5C.html)

changlee 25. Mär 2005 17:04


prüfen ob pfad existiert (z.B. 'c:\')
 
Hallo,
gibt es eine Möglichkeit zu prüfen, ob ein Pfad existiert?
Bei einem Ordner ist das ja ganz einfach mit DirectoryExists möglich. Was ist aber, wenn es sich nicht um einen Ordner Handelt, sondern z.B. um 'c:\'?
Danke schonmal für eure Hilfe und schöne Ostertage
changlee.

SirThornberry 25. Mär 2005 17:05

Re: prüfen ob pfad existiert (z.B. 'c:\')
 
dann gibt dir DirectoryExists genau wie bei einem verzeichnis "true" zurück.

changlee 25. Mär 2005 17:11

Re: prüfen ob pfad existiert (z.B. 'c:\')
 
:stupid: Ahh.

Du hast Recht. Davon war ich anfangs auch ausgegangen. Das ich vom Gegenteil überzeugt war, lag an einem kleinen anderen Fehler.
Danke.

changlee 25. Mär 2005 17:14

Re: prüfen ob pfad existiert (z.B. 'c:\')
 
Nein, ich muss mich korrigieren:

DirectoryExists('c:\') gibt unter Windows98 offensichtlich nicht true zurück. Unter WinXP klappt jedoch alles so wie es sollte. Kann das Betriebssystem die Ursache sein?

changlee

Christian Seehase 25. Mär 2005 17:43

Re: prüfen ob pfad existiert (z.B. 'c:\')
 
Moin changlee,

probier's mal hiermit:

Delphi-Quellcode:
function DirectoryExists(const AsDirectory : string) : boolean;

var
  hHandle : DWORD;

begin
  hHandle := CreateFile(PChar(AsDirectory),GENERIC_READ,FILE_SHARE_READ,
                        nil,OPEN_EXISTING,FILE_FLAG_BACKUP_SEMANTICS,0);
  Result := (hHandle <> INVALID_HANDLE_VALUE);
  if Result then CloseHandle(hHandle);
end;
mit der originalen Version hatte ich unter Windows ME auch das Problem, dass die Funktion nicht tat was sie sollte, mit dieser hat es dann funktioniert. Wie es sich mit 98 verhält, weiss ich nicht.

changlee 25. Mär 2005 17:51

Re: prüfen ob pfad existiert (z.B. 'c:\')
 
Danke,
ich habe hier gerade kein Win98 Rechner, werde es aber zuhause gleich testen.
mfg
changlee


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