![]() |
Re: FindFirstFile NIL übergeben?
Zitat:
nicht ganz! Die Funktion von Borland prüft, ob FileAge(FileName) <> -1 ist. Ich nehme aber an, dass das (bei Dateien zumindest) keinen Unterschied macht. mfG mirage228 |
Re: FindFirstFile NIL übergeben?
@mirage: Deswegen schrieb ich ja auch:
Zitat:
@Christian: Meinst du die Implementierung von Borland, oder den von mir o.g. Weg? Von ersterer habe ich mir den Quellcode noch nicht angesehen (gleich mal machen, muss bloß zum Schrank ... die CD holen), bei letzterer wüsste ich im Moment jetzt keinen Grund warum es nicht gehen sollte. @Luckie: Damit wären wir wieder beim Thema. Pseudemys Nelsoni gehört zu denen, die das Rad ständig neu erfinden müssen ... ;) |
Re: FindFirstFile NIL übergeben?
Moin Mathias,
ja, ich meine die von Borland. Nachdem ich die durch eine eigene Variante ersetzt hatte ging's. Sieht fast genau so aus wie Deine, nur mit CreateFile. |
Re: FindFirstFile NIL übergeben?
guck ich mir an luckie.
Zitat:
|
Re: FindFirstFile NIL übergeben?
Also, ich habe eben mal nachgeschaut. In D5 benutzt Borland die API-Funktion "GetFileAttributes":
Delphi-Quellcode:
Jetzt wäre aber die Frage, warum das bei Windows ME nicht klappen soll. Im PSDK finden sich jedenfalls keine speziellen Hinweise zu ME. Bei Delphi 7 sieht die Funktion aber genauso aus wie oben gezeigt. Demzufolge müsste ein D7-Programm das gleiche Problem haben. Hat jemand ME und kann das bestätigen?
function DirectoryExists(const Name: string): Boolean;
var Code: Integer; begin Code := GetFileAttributes(PChar(Name)); Result := (Code <> -1) and (FILE_ATTRIBUTE_DIRECTORY and Code <> 0); end; Ansonsten würde ich, wenn´s unbedingt eine eigene Funktion für Verzeichnisse sein soll, folgendes vorschlagen:
Delphi-Quellcode:
@Pseudemys Nelsoni: Doch, denn "FileExists" hat nichts mit der VCL zu tun. Du kannst die SysUtils- und ähnliche Units auch in nonVCL/Konsolenprojekte einbinden. Es ist eben nur so, dass das Programm dadurch etwas größer wird, weil im Hintergrund bestimmte Dinge initialisiert werden, usw.
function DirectoryExists(const Directory: string): boolean;
var Handle : THandle; FindData : TWin32FindData; begin Handle := FindFirstFile(pchar(Directory),FindData); Result := (Handle <> INVALID_HANDLE_VALUE) and (FindData.dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY <> 0); if(Handle <> INVALID_HANDLE_VALUE) then Windows.FindClose(Handle); end; Wenn du auch auf die SysUtils usw. verzichten willst, dann kommst du um die API-Funktionen nicht herum. Und mit "Rad neu erfinden" meine ich, dass du bspw. Fragen stellst, die ich (bei Kenntnis der Win32-API-Tutorials als Beispiel) nicht stellen würde, weil du dort schon die Antworten findest. Zudem liegen bei den Samples der Tutorials ebenfalls diverse erweiterte bzw. gepatchte Units bei. Eine davon enthält auch die o.g. "fileexists"-Funktion. |
Re: FindFirstFile NIL übergeben?
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:20 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