![]() |
Wie arbeitet FileExists intern?
Hallo
Ich habe ein Problem mit der FileExists Funktion. Kann mir eventuell jemand sagen, wie diese Funktion intern arbeitet bzw. welche Api's dazu benutzt werden? Danke schonmal im vorraus. Gruß Richard |
Re: Wie arbeitet FileExists intern?
Hallo,
die Funktion versucht einfach, mittels der Funktion 'GetFileAttributes' die Dateiattribute der im Paramteter übergebenen Datei abzufragen. Je nach Rückgabewert ist das Ergebnis von FileExists True oder False. |
Re: Wie arbeitet FileExists intern?
Delphi 5:
Delphi-Quellcode:
function FileAge(const FileName: string): Integer;
var Handle: THandle; FindData: TWin32FindData; LocalFileTime: TFileTime; begin Handle := FindFirstFile(PChar(FileName), FindData); if Handle <> INVALID_HANDLE_VALUE then begin Windows.FindClose(Handle); if (FindData.dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY) = 0 then begin FileTimeToLocalFileTime(FindData.ftLastWriteTime, LocalFileTime); if FileTimeToDosDateTime(LocalFileTime, LongRec(Result).Hi, LongRec(Result).Lo) then Exit; end; end; Result := -1; end; function FileExists(const FileName: string): Boolean; begin Result := FileAge(FileName) <> -1; end; |
Re: Wie arbeitet FileExists intern?
Hui, wie sich das doch ändern kann :?
Meine Version bezieht sich auf D2006. |
Re: Wie arbeitet FileExists intern?
Wie die Funktion intern abläuft, ist ja eigenzlich egal.
Hauptsache, das Ergebnis ist gleich. Bei Delphi 2007 sieht's so aus:
Delphi-Quellcode:
function FileExists(const FileName: string): Boolean;
var Code: Integer; begin Code := GetFileAttributes(PChar(FileName)); Result := (Code <> -1) and (FILE_ATTRIBUTE_DIRECTORY and Code = 0); end; |
Re: Wie arbeitet FileExists intern?
Zitat:
Und da macht es dann ja schon Sinn, Unterschiede zwischen den einzelnen Versionen aufzuzeigen. |
Re: Wie arbeitet FileExists intern?
Übrigens ist es bei Delphi7 noch genauso wie bei Delphi 5.
|
Re: Wie arbeitet FileExists intern?
hat das problem mit entpackten dateien zu tun?
ich habe folgendes problem festgestellt: archive mit 7-zip erstellt im zip format archiv mit rar entpackt die entpackten verzeichnisse und dateien konnten nicht mit fileexists gefunden werden. |
Re: Wie arbeitet FileExists intern?
Hi
Ich habe das Problem, das FileExists immer das selbe Ergebnis liefert, egal ob die Datei nun vorhanden ist oder nicht. Gruß Richard |
Re: Wie arbeitet FileExists intern?
Zitat:
Und dass deshalb immer False geliefert wird? Zeig doch mal ein Stückchen Code... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:01 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 by Thomas Breitkreuz