Existenz einer Datei überprüfen
-
Hi,
ich wüsste gerne, wie man am besten überprüft, ob eine bestimmte Datei existiert. Irgendwie war ich in der IOstream Library nicht fündig (oder macht man das über Umwege mittels is_open()?).
-
ingobulla schrieb:
Hi,
ich wüsste gerne, wie man am besten überprüft, ob eine bestimmte Datei existiert. Irgendwie war ich in der IOstream Library nicht fündig (oder macht man das über Umwege mittels is_open()?).
Probier doch einfach die Datei zu öffnen. Wenn klappt, dann gibt es sie, wenn nicht, dann gibt es sie nicht.
-
oder du hast keine Rechte sie zu öffnen.
Aber du hast Recht, im Allgemeinen reicht das.
-
Braunstein schrieb:
oder du hast keine Rechte sie zu öffnen.
Aber du hast Recht, im Allgemeinen reicht das.
Dafür würde es dann boost::filesystem geben, aber das wäre wahrscheinlich mit Kanonen auf Spatzen geschossen.

-
und wenn wir es ganz simpel machen?
if(file) ... else ...??ging doch auch

-
unter windows wäre das simpelste ein findfirst() ohne versuchen zu müssen die datei auf krampf zu öffnen

-
Wie wärs einfach mit
FileExists(string dateiname);
-
und von welcher API stammt das dann?
-
Braunstein schrieb:
und von welcher API stammt das dann?
Frag ich mich auch!

WinAPI spezifisch könnte man auch GetFileAttributes* verwenden:inline BOOL FileExists( const PTCHAR file ) { #if _UNICODE if ( !file || wcslen( file ) == 0 ) #else if ( !file || strlen( file ) == 0 ) #endif return FALSE; WIN32_FILE_ATTRIBUTE_DATA tmp; if ( GetFileAttributesEx( file, GetFileExInfoStandard, &tmp ) ) { return !( tmp.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY ); } return FALSE; }Oder sogar in Kombination mit FindFirstFile.