funktion zum überprüfen des vorhandenseins einer datei?
-
streamer schrieb:
int main() { ifstream in("dat.txt"); if(!in) cout << "Datei existiert nicht"; in.close(); return 0; }
goto Master_Max' Posting
-
interpreter schrieb:
streamer schrieb:
int main() { ifstream in("dat.txt"); if(!in) cout << "Datei existiert nicht"; in.close(); return 0; }
goto Master_Max' Posting
Tja aber boost ist immer noch kein Standard ...
-
aber deine Lösung macht das trotzdem nicht richtig :p
-
Aber funktioniert ... :p
-
Meckert keiner ???
Klar kann man so nicht überprüfen ob man überhaupt Zugriffsrechte auf die Datei besitzt.
Aber das ist mit Standard halt nicht möglich.
-
bool exist(string dateiname) { ifstream test(dateiname.c_str()); if(!test) { return false; } else { return true; } } int main() { string name; cin>>name; if(exist(name) == true) { cout<<"Datei ist vorhanden"<<endl; } else { cout<<"Datei ist nicht vorhanden"<<endl; } }
-
hm......
ich denke, ich werde die boost variante verwenden, um mich näher damit vertraut zu machen.mfg
Olf
-
Aber funktioniert ...
im Normalfall ja, aber es kann auch Probleme geben
#include <fstream> #include <iostream> int main(int argc,char **argv) { if(argc!=2) { std::cerr << "usage: " << *argv << " <file>\n"; return 1; } std::ifstream test(argv[1]); if(!test) std::cout << argv[1] << " existiert nicht!" << std::endl; else std::cout << argv[1] << " existiert!" << std::endl; }
> g++ -Wall -W -std=c++98 fexists.cpp > touch file #erzeuge datei "file" > ln -s file link #erzeuge einen symbolischen Link "link" auf "file" > ./a.out file file existiert! > ./a.out link link existiert! > rm file #lösche file (aber nicht den Link) > ./a.out link link existiert nicht! > ls link #gucke ob link noch existiert link
@dateimann
if(!test) { return false; } else { return true; }
-
kingruedi schrieb:
im Normalfall ja, aber es kann auch Probleme geben
Wobei das eigentlich keine Probleme sind, sondern eben genau dass, was man fast immer will. Nur die Aussage "Datei existiert (nicht)" ist einfach falsch.
Wirklich feststellen, ob eine Datei existiert, ist bei fehlenden Rechten ohnehin nicht möglich.
Also sollte man sich überlegen, ob man mit boost, fstat oder sonstigem, überprüft ob eine Datei vorhanden ist, oder ob man nicht lieber prüft ob man die Datei zum lesen/schreiben öffnen kann.
-
nein, es geht eindeutig darum, ob die datei vorhanden ist
mfg Olf