Feststellen, ob Leserechte vorhanden sind

Hallo,

wie kann ich feststellen, ob ich auf ein Verzeichnis Leserechte habe?

File f = new File(„C:\Temp\keineRechte\“);
f.canRead()

gibt bei mir immer true, auch wenn ich auf das Verzeichnis „keineRechte“ nicht zugreifen kann („Zugriff verweigert“) (Windows XP).

Danke,
mainfield

Hallo,

wie kann ich feststellen, ob ich auf ein Verzeichnis
Leserechte habe?

File f = new File(„C:\Temp\keineRechte\“);
f.canRead()

gibt bei mir immer true, auch wenn ich auf das Verzeichnis
„keineRechte“ nicht zugreifen kann („Zugriff verweigert“)
(Windows XP).

Ungetestete Antwort: canRead gibt bei Verzeichnissen immer true zurück, du siehst das Verzeichnis ja auch, canExecute sollte aber false zrückgeben, wenn du den Verzeichnisinhalt nicht auflisten darfst.

Gruß
Heavy

Hi

wie kann ich feststellen, ob ich auf ein Verzeichnis
Leserechte habe?

Wenn Du die Datei öffnest, möchtest Du ja auch lesen. Setze die entsprechenden Statements doch einfach in ein try-catch-Block!

Grüße
m4tt3n

Danke für Eure Antwort.

canExecute gibt leider auch true zurück.
Habe das Problem mit einem try-catch-Block gelöst. Eine andere Lösung scheint es wohl nicht zu geben.

Nachtrag: Hab’ mir eine kleine Methode geschrieben, die überprüft, ob ein Verzeichnis gelesen werden kann (vielleicht kann’s ja jemand gebrauchen):

public static boolean canReadDirectory(File path) {
 if(!path.exists() || !path.canRead())
 return false;

 String[] dir = path.list();
 if(dir == null)
 return false;

 return true;
}