auf vorhandenen Ordner testen?



  • Hallo

    Wie kann ich feststellen ob es einen bestimmten Ordner in einem Verzeichnis gibt? Bei einer Datei geht das ja ganz leicht

    string File;
    File = "c:\\Dat.txt";
    if(File.c_str())
    {
      cout << "Datei vorhanden";
    }
    

    Aber wenn ich auf einen Ordner teste geht das nicht, egal ob es ihn gibt oder nicht für die if Anweisung ist er immer dar.



  • Ist schon wieder April ? 🤡

    std::string::c_str() liefert Dir einen const char * auf den Text zurück der durch das Object gehalten wird. Es testet NICHT ob eine Datei vorhanden ist.

    Für das was Du machen möchtest würde ich fstream verwenden.

    Dateitest:

    ifstream file("c:\\dat.txt)
    if(!file)
       ; //Datei nicht vorhanden
    

    Um ein Verzeichnis zu testen könnte man eine Datei im Pfad anlegen ?!?

    Da weiß ich auch keine wirklich gute Lösung 😇

    [ Dieser Beitrag wurde am 24.10.2002 um 09:25 Uhr von Knuddlbaer editiert. ]



  • Wenn dieser Ordner erstellt ist, befinden sich darin auch Dateien. Nur ist der Name und die Endung jedesmal anders (Datum und Zeit).
    Wenn man einen Ordner nach Dateien durchsucht, werden ja immer "." und ".." für die übergeordnetet Verzeichnisse angezeigt. Kann man die vielleicht anstelle von Dateien nutzen?



  • Wenn du es mit Standard C++ machen willst (sonst würde du ja hier nicht posten ;)), naja besser gehts mit einer Api Funktion von deinem Os
    also Welches Os benutz du?

    mit Standard C++ kann man Ordner nur indirekt nachweissen (ist nicht wirklich schön aber da es mir grade eingefallen ist poste ich es mal)

    #include <iostream>
    #include <fstream>
    #include <cstdio>
    using namespace std;
    
    int main()
    {
        if(ifstream( "test/dummy.tes" ))
            cout << "Es Exestriert ein Test Ordner" << "\n";
        else
        {
            if(ofstream( "test/dummy.tes" ))
                cout << "Es Exestriert ein Test Ordner" << "\n";
            else
                cout << "Es Exestriert Kein Test Ordner" << "\n";
            remove( "test/dummy.tes" );
        }
    }
    


  • Danke, das geht.

    SArkin



  • ihh du benutz das wirklich 😃
    sag mir lieber ob du Windows oder Linux benuzt die haben richtige Funktionen für.

    [ Dieser Beitrag wurde am 24.10.2002 um 12:16 Uhr von Dimah editiert. ]



  • Windows (NT) benutze ich.

    SArkin



  • Hat jemand eine Idee welche Funktion genutzt werden kann, um auf vorhandene Ordner zu testen?


Anmelden zum Antworten