Überprüfen, ob datei da ist.



  • Hey, Hey

    Habe bestimmt seit einer Halben Stunde Versucht,
    einen code zu Schreiben der Überprüft ob eine Date
    existiert 🙂 Aber keiner Funktioniert....
    Kann mir einer Helfen?

    Immer bekomme ich die Meldung das sie nicht
    da ist obwohl sie da ist...

    Hier ein paar Versuche :

    ifstream f("E:\datei.txt");
    if(f != 0)
    {
    cout << "DA!";
    }else {
    cout << "NE!";
    }
    // Nächster 
    
    ifstream FileTest("testdatei.txt");
    if(!FileTest)
    cout << "File not found." << endl;
    //Nächster
    
    ifstream file("dateiname");
    if (file.good()) {
    cout << "DA";
    }else {
    cout << "Nicht da";
    }
    

  • Mod

    Dein zweiter Weg ist der übliche. An sich sollten aber alle drei funktionieren. Daher ist die Datei wohl tatsächlich nicht da. Vermutlich machst du etwas falsch beim Umgang mit Pfaden. Deine Dateinamen sind allesamt relative Pfade, d.h. die Datei wird ausgehend vom aktuellen Arbeitsverzeichnis gesucht. Welches Verzeichnis dies ist, ist je nach System und Ausführungsmethode eine einfache bis schwere Frage. Unter Windows ist diese Frage für den unbedarften Benutzer erfahrungsgemäß eher schwer.



  • Also heißt das, dass
    der Pfad eig. ins Nichts Führt 😮
    Mein Programm liegt bei E:\Dokument und Einstellungen\*\Desktop\Programm.exe
    rum also müsste ich eigentlich die datei auch auf den Desktop packen das, dass
    Programm auch findet oder wie?

    LG Keybladmaster



  • Ja.
    Oder du gibst den Pfad richtig an.



  • Nein, musst du nicht. Aber du musst einen Pfad angeben. Entweder er ist relativ (d.h. vom Desktop-Ordner aus gesehen) oder absolut (z.B. eben E:/...). Bei absoluten Pfaden musst du noch aufpassen, dass deutsche Verzeichnisnamen teilweise nur Aliase sind und nicht den tatsächlichen Pfad bezeichnen.



  • Ausserdem darfst du in Pfadangaben im Programm nicht einfach nur \ schreiben. entweder

    ifstream f("E:\\datei.txt");
    

    oder

    ifstream f("E:/datei.txt");
    


  • Das ganze testet nicht wirklich ob die Datei vorhanden ist sondern eigentlich nur ob sie lesbar ist (Zugriffsrechte). Das ist zwar meist auch das was der Nutzer will aber trotzdem ein Unterschied.


Anmelden zum Antworten