Prüfen auf Dateiexistenz
-
Hallo
Wie schon der Titel sagt, suche ich nach einem Befehl, mit dem ich überprüfen kann, ob im aktuellen Pfad eine Datei exestiert. Hierbei handelt es sich um bmp-Dateien. Gibt es sowas ähnliches wie FileExist für WinApi?
-
FindFirstFile
Hepi würde jetzt PathFileExists vorschlagen.
-
Oh ja, auf den Befehl bin ich bei meiner Suche in der MSDN auch gestoßen.
Ich hatte aber Problem, das Ergebnis auszuwerden.
Ich glaube er gibt mir da ein HANDLE zurück. Muss ich dieses Handle dann auf
!= NULL prüfen wenn die Datei existiert?
-
ne, INVALID_HANDLE_VALUE
-
Also mit PathFileExist funkst es, aber aus reinem Wissensdrang würde mich die FindFirstFile Funktion schon interessieren.
-
bool FileExists(LPCTSTR fileName) { WIN32_FIND_DATA FindData; HANDLE findHandle = FindFirstFile(fileName, &FindData); if(findHandle != INVALID_HANDLE_VALUE) { FindClose(findHandle); return true; } return false; }
-
Die einfachste Variante die ich kenne:
DWORD dw = GetFileAttributes("c:\\temp\\ereiam.txt"); if (dw != (DWORD)-1) { // file does exist }
-
man sieht zwar häufiger FindFirsFile, ich weiß aber nicht was z.B gegen GetFileAttributes spricht
DWORD GetFileAttributes(
LPCTSTR lpFileName
);Return Values
If the function succeeds, the return value contains the attributes of the specified file or directory.
If the function fails, the return value is INVALID_FILE_ATTRIBUTES (bzw. -1)
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/base/getfileattributes.asp
EDIT: ich war zu langsam
(betrag kann eigentlich gelöscht werden)
-
laß ihn doch ruhig, zu zweit können wir die asnderen locker überstimmen
-
-
?????
-
!vote PathFileExist
-
Hab gerade noch mal was probiert und mir ist aufgefallen, das ich bei PathFileExists das Problem habe, das der Compiler mir sagt, das ich das nicht deklariert habe. Binde ich die Header shlwapi.h ein, bekomme ich dann noch andere Fehler. Also in der windows.h ist die Funktion bei mir nicht deklariert.
-
...und du must Shlwapi.lib linken, und dein Programm läuft nur, wenn mindestens IE4 installiert ist.
GetFileAttributes() geht von ganz alleine