In Umgebungsvariablen nach Dateien suchen ?



  • Hallo zusammen,

    zum einen muß ich mir Umgebungsvariablen irgendwo herholen können. Habe aber schon gesehen, dass das mit getenv() funktioniert. Was mich jetzt aber nur noch stört ist die Tatsache, dass ich in ein char* einlese. Ok mit der Überprüfung auf NULL fange ich ein abschmieren ab, wenn er die Variable nicht gefunden hat, aber wenn ich denn nun in jedem einzelnen Pfad auch noch nach der Existenz von Dateien schauen muß wie mache ich das denn dann ?
    Ich hoffe ihr wißt jetzt was ich meine ?

    Bsp. ich muß zum schauen
    a) ob ein bestimmter Pfad gesetzt ist
    b) ob die Datei test.txt irgendwo in den Pfaden zu finden ist

    Könnt ihr mir helfen ??? 😕 😕 😕



  • Wenn Du den Pfad und den Dateinamen hast könntest Du versuchen die Datei zum lesen zu öffnen.

    Alternativen gibts im jeweiligen Betriebssystem bzw. Compiler. (PathFileExists z.B. in der WinAPI)



  • Als Betriebssystem ist WinNT4.0 oder WinXP installiert. Und Entwicklungsumgebung ist Visual Studio, aber womit kann ich das da dann machen ? Kann ich aus dem char* auch sowas wie string machen ?



  • Hi!

    Der std::string hat einen Konstruktor der ein char entgegen nimmt.
    Auch der CString des VS schafft das.

    Wenn

    std::string envVari(getenv());

    bzw.

    CString envVari2(getenv());

    Wenn es OS Abhängig sein darf, schau Dir in der MSDN mal PathFileExists an.



  • Hi

    Was macht std::string bzw. CString wenn der Parameter NULL ist ? 😉
    getenv() gibt das zurück wenn der wert nicht gefunden,wie gesagt.

    char *wert;
    wert=getenv("Mein Schluessel");
    if(wert!=NULL)
     CString str(wert);
     //std::string str(wert);
    if((str.Find("test.txt",0))!=-1)
     //gefunden
    

Anmelden zum Antworten