Zugriffrechte eines Ordner abrufen (Visual C++ 2008 Express Edition)



  • Sers,

    ich würde gerne in einer

    if (Ordner zugriffsberechtigung != false) {
    }
    

    die zugriffsberichtigung überprüfen um z.B. Ordner wie "System Volume Information" zu überspringen.
    Wie greife ich auch auf die Eigenschaft mit .Net Framework zu?



  • Fragen wir mal so: WARUM?
    Reicht es Dir nicht, wenn Du den Ordnner versuchst zu öffnen und wenn es geht hast Du Glück, ansonsten Pech?

    Es gibt fast nie einen Grund die Berechtigungen zu prüfen.
    Auch wenn Du z.B. bei einer Datei zuerst die Berechtigungen prüfst, ob Du Dateien anlegen darfst, kann trotzdem anschliessend der Konkrete Vorgang die Datei anzulegen fehlschlagen...

    Deshalb nichmals die Frage: Warum?



  • Naja weil das Programm abstürtzt wenn es verrsucht z.B. auf einen gesperten Ordner wie "System Volume Information" zu zu greifen.

    Deshalb will ich vor jeden zugriff überprüfen ob man lesezugriff hat, weil sonst habe ich eine unbehandelte ausnahme und das Programm stürtzt ab.



  • Und warum fängst Du den "Absturz" nicht ab???

    try
    catch(System::Exception ^e)



  • Try sol doch ein höherer Rechenaufwand sein, oder lieg ich da falsch?
    weil wenn ich eine Liste mit mehrenen tausend Ordner durchlaufen lassen wil, inkl. unterordner und er für jeden eintrag eine aufwangmethode erstellen muss...

    Ich hab das auf jeden fall so bei Visual Basic erlebt, dass dann virtueller arbeitspeicher auf dem festspeicher angelegt wird und es richtig zeit kostet bis er durch ist 😞



  • Ja, da geb ich Dir allerdings recht.
    Deshalb würde ich solche Dinge mit C/C++ machen 😉 oder Du verwendest die WinAPI-Funktionen direkt, die werfen i.d.R. keine Exceptions, sondern liefern einen Fehlercode zurück. Leider macht .NET (BCL) in den meisten Fällen eine
    Exception daraus, was es natürlich sehr unschön macht...


Anmelden zum Antworten