![]() |
Re: Windows API Funktion um Befehlsziel zu ermitteln?
Ich hab nun eine selbst geschriebene Lösung. Das Ergebnis könnt ihr unter der folgenden Adresse bewundern:
![]() |
Re: Windows API Funktion um Befehlsziel zu ermitteln?
folgendes würde ich abwandeln von:
Delphi-Quellcode:
nach
// Prüft ob ein Verzeichnis ODER eine Datei existiert
function FileOrDirExists(Filename:TFilename):Boolean; begin Result:=(DirectoryExists(Filename) or Fileexists(Filename)); end;
Delphi-Quellcode:
Grund: FileExists und DirectoryExists machen nichts anderes + das Prüfen ob es ein Verzeichnis oder eine Datei ist. Du rufst sozusagen 2 mal das gleiche auf.
function FileOrDirExists(Filename:TFilename):Boolean;
var lSearchRec: TSearchRec; begin if FindFirst(AFilename, faAnyFile, lSearchRec) = 0 then begin FindClose(lSearchRec); result := True; end else result := False; end; |
Re: Windows API Funktion um Befehlsziel zu ermitteln?
Bist du dir sicher das genau das hinter FileExists/DirectoryExists steckt bzw. könnte etwas unerwartetes auftauchen oder etwas nicht mehr kompatibel sein, wenn ich deinen Code einsetze?
|
Re: Windows API Funktion um Befehlsziel zu ermitteln?
DirectoryExists macht intern ein: GetFileAttributes
und FileExists macht intern ein: FileAge welches wiederum ein FindFirstFile macht. Letztendlich kannst du dich als für eine der beiden Varianten entscheiden. Also ob du Generell mit GetFileAttributes oder mit FindFirstFile arbeiten willst. GetFileAttributes gibt dir im Fehlerfall DWORD(-1) zurück. Du kannst eigentlich auch auf folgende Weise überprüfen ob eine Datei oder ein Verzeichnis existiert:
Delphi-Quellcode:
oder du prüfst eben mit FindFirstFile ob ein bestimmter Verzeichniseintrag vorhanden (wobei du das FindFirstFile-Handle mit FindClose wieder schließen musst)
result := GetFileAttributes(PChar(AFileName)) <> DWORD(-1);
|
DP-Maintenance
Dieses Thema wurde von "Daniel" von "Windows 9x / ME / 2000 / XP / 2003" nach "Windows API / MS.NET Framework API" verschoben.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:32 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