Datei finden und C++
-
Hi,
wenn ich prüfe, ob eine bestimmte Datei(m_strPath) vorhanden ist, schreibe ich folgenden Kode:
// Pfad prüfen FILE* dummy = NULL; dummy = fopen(m_strPath.c_str(), "r"); if (dummy==NULL) return false; else fclose(dummy);Ist der Kode noch ordentliches C++, oder wie programmiert man das in C++?
Grüsse,
don_basto
-
Mit std::ifstream natürlich. Aber das Öffnen der Datei kann auch fehlschlagen wenn die Datei existiert. Ist zwar unwahrscheinlich, kann aber passieren.
-
so unwahrscheinlich nun auch nicht. Es muss "nur" z.B. ein andere Prozess die Datei mit exklusiven Rechten geöffnet haben, schon schlägts fehlt.
-
don_basto schrieb:
Ist der Kode noch ordentliches C++, oder wie programmiert man das in C++?
mit boost::filesystem => exists()
das kann nämlich nicht nur fehlschlagen, wenn die datei schon geöffnet ist, sondern auch, wenn du kein leserecht hast.
-
Also FILE ist ja erstmal C und nicht C++. fstream ist schon besser, sagt aber nichts aus. Benutzt doch mal eine vernünftige Dateisystem Library: