Directory auf Existenz prüfen und erzeugen ?



  • Hallo,
    ich möchte ein directory erzeugen. Dazu nutze ich folgenden Code:

    CString path = CString("C:\\Programme\\muh");
    //...
    
    void setDirectory(const CString& path)
    {
      DWORD dwRetVal = 0;
      if(!PathFileExists(path)
      {
        if(!CreateDirectory(path, NULL)
           throw "Verzeichnis konnte nicht erstellt werden!";
      }
      else
        throw "Verzeichnis konnnte nicht erstellt werden!";
    }
    

    Beim ersten Versuch funktioniert das ganze. Existiert das Verzeichnis allerdings schon bekomme ich eine unhandled exception. Habe leider k.A. wo der Fehler liegt. Bitte helf mir weiter.

    Gruß



  • Versuch es doch lieber mal mit PathIsDirectory(), denk oich das passt besser zu deinem gesuchten



  • Hallo,
    Danke für die schnelle Hilfe. Wenn das Verzeichnis schon existiert bekomme ich leider immer noch die first-chance exception in meiner Anwendung (kernel32.dll). Scheint aber nicht am CreateDirectory() zu liegen, da ich die exception auch bekomme wenn ich CreateDirectory() auskommentiere ?!?!

    Folgendes wird angezeigt:
    Loaded 'C:\windows\...\odbc32.dll', no matching symbolic information found

    für odbc32.dll, winsta.dll, shgina.dll davclnt.dll,......,ntdll.dll das selbe

    Habe den Code mal geändert in:

    if(!PathIsDirectory(path))
       CreateDirectory(path, NULL);
    else
       throw "Fehler";
    

    Hast du eine Idee woran das liegen kann??



  • First chance exception sind exceptions, welche geworfen, aber gefangen wurden.
    Es ist also nur eine Debugger Information, betrifft dich aber nicht.

    Simon

    Edit
    BTW: Checke den Return Wert von CreateDirectory(..).



  • if(!PathFileExists(path)
      {
        if(!CreateDirectory(path, NULL)
           throw "Verzeichnis konnte nicht erstellt werden!";
      }
      else
        throw "Verzeichnis konnnte nicht erstellt werden!";
    

    Wenn's existiert: throw... Was soll das?



  • Pather schrieb:

    if(!PathFileExists(path)
      {
        if(!CreateDirectory(path, NULL)
           throw "Verzeichnis konnte nicht erstellt werden!";
      }
      else
        throw "Verzeichnis konnnte nicht erstellt werden!";
    

    Wenn's existiert: throw... Was soll das?

    Das verstehst Du eh nicht, ist nicht ganz Deine Sprache MFC.



  • Stupido!


Anmelden zum Antworten