pruefen ob ordner vorhanden ist
-
so mach ich es fuer ein file:
bool FileExist(LPCTSTR filename) { HANDLE f = CreateFile( filename, GENERIC_READ , FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); if (f == INVALID_HANDLE_VALUE) return false; CloseHandle(f); return true; }wie koennte ich sowas fuer einen ordner machen?
-
Das geht (fast) genauso:
MSDN zu CreateFile schrieb:
dwFlagsAndAttributes -> FILE_FLAG_BACKUP_SEMANTICS
[...]
You can set this flag to obtain a handle to a directory. A directory handle can be passed to some functions instead of a file handle. For more information, see Obtaining A Handle to a Directory.Hier dann noch
Obtaining A Handle to a Directory
-
Auf gar keinen Fall via "CreateFile" machen, da dies sonst die Datei/Verzeichnis verändert (zumindest das Datum) und teilweise diese nicht öffnen kann!
Verwende bitte "GetFileAttributes"!
-
Jochen Kalmbach schrieb:
Auf gar keinen Fall via "CreateFile" machen, da dies sonst die Datei/Verzeichnis verändert (zumindest das Datum) und teilweise diese nicht öffnen kann!
Verwende bitte "GetFileAttributes"!
Und wie stehts mit GENERIC_READ ?
-
Verstehe Deine Frage nicht!? Ich sagte doch *kein* CreateFile! Das verändert den Dateieintrag für diese Datei... und backump-semantic kann nicht jeder Benutzer...
-
Walti schrieb:
so mach ich es fuer ein file:
bool FileExist(LPCTSTR filename) ...snipwie koennte ich sowas fuer einen ordner machen?
PathIsDirectory
Und Deine Funktion kann man auch ganu kurz mit PathFileExists ablösen!
-
FindFirstFile()
geht auch.