2010-12-13 6 views
0

Seit Windows 7 ist das Verzeichnis windows/system32/drivers/etc extra versteckt. Windows 7 selbst zeigt es nicht, aber es ist da, wenn ich es manuell öffne.Spezielle versteckte Dateien/Verzeichnisse von Windows 7 in Java anzeigen

Heute spielte ich mit einem Java JFace Eclipse Beispiel (http://www.ibm.com/developerworks/library/os-ecgui1/) herum und wunderte mich, dass Java auch das Verzeichnis etc nicht anzeigt.

Also wie bekomme ich alle Verzeichnisse/Dateien, wenn Sie file.listFiles() verwenden? Irgendwelche Ideen?

Antwort

0

Die Methode File.listFiles() sollte normale "versteckte" Dateien im Ergebnis enthalten. Ist dies nicht der Fall, liegt es daran, dass auf Betriebssystemebene die Dateien aus der Anwendung (und nicht nur der Benutzer) ausgeblendet werden.

Ich konnte nichts in java.io.File oder den Java 7 java.nio.* Erweiterungen finden, die den Zugriff auf "speziell versteckte" Dateien erwähnen.

Es könnte eine privilegierte Sache sein ... und wenn das der Fall ist, ist die Lösung, die Java-Anwendung mit erhöhten Rechten auszuführen.

Aber die einfache Lösung ist, dass Ihre Anwendung die Nase aus dem Windows-Treiber-Verzeichnisbaum behält.

0

Wie ich geschrieben habe, habe ich mit einem JFace-Beispiel herumgespielt, das einen Java-basierten Windows-Explorer aufbaut. Ich stimme Ihnen zu, dass eine Java-Anwendung normalerweise nicht in der Windows-Treiberverzeichnisstruktur etwas tun sollte. Die dort "speziell versteckten" Dateien sind bei anderen Programmen wie Total Commander sichtbar, ohne dass diese Programme mit anderen als normalen Rechten ausgeführt werden. Ich nehme an, dass Windows einige API-Funktionen hat, um diese Informationen zu erhalten. Ich bin nur interessiert an einer Java-basierten Lösung, die mir alles zeigen kann, das ist auf meiner Festplatte ...