Ich mache einen einfachen Dateibrowser und möchte wissen, wie man das Standardstammverzeichnis erhält. Ich weiß, dass java.io.File.listRoots()
gibt alle Wurzeln (für mich ist es A:\, C:\, D:\, E:\, F:\, G:\, H:\, I:\, L:\ T:\, U:\, X:\, Y:\, Z:\
), aber ich möchte den einen der Benutzer in erster Linie verwendet (das heißt die mit dem Betriebssystem drauf), damit ich weiß, von wo aus das Browsen zu starten.Abrufen des Standardstammverzeichnisses in Java
Antwort
Erste die Betriebssystem-Partition root ist nur eine Sache auf Windows
da auf Unix
es ist immer /
.
daher der folgende Code funktioniert für Windows
nur:
System.getenv("SystemDrive");
Es wird die SystemDrive
Umgebungsvariable Wert. Dies sollte immer die Root-Partition des Betriebssystems, z. C:
.
nicht sicher, ob dies eine Hilfe ist, aber man könnte versuchen:
import javax.swing.filechooser.*;
FileSystemView.getFileSystemView().getRoots()[0];
oder
FileSystemView.getFileSystemView().getHomeDirectory();
oder
System.getProperty("user.dir");
Für den letzten Schnipsel, könnten Sie das bekommen root-Verzeichnis, indem Sie mit getParent() nach oben navigieren, bis null
zurückgegeben wird.
public static String rootDirectory(){
return File.listRoots()[0].getAbsolutePath();
}
ist dies garantiert nicht, sagen wir, das 'A'-Laufwerk in Windows, wenn ich ein Diskettenlaufwerk angeschlossen habe? – Supuhstar
@Supuhstar, ich habe gerade einen Test durchgeführt, und die Antwort lautet nein. Unter Windows gibt es die Liste der Wurzeln in alphabetischer Reihenfolge zurück, also "A: \" ist zuerst. Zusätzlich wird gemäß der Dokumentation (https://docs.oracle.com/javase/7/docs/api/java/io/File.html#listRoots()): „Eine bestimmte Java-Plattform kann null oder mehr Stütz hierarchisch organisierte Dateisysteme. " Mit anderen Worten, Blind-Dereferenzierung von Index 0 kann eine ArrayIndexOutOfBoundsException verursachen. Diese Antwort ist somit nicht vollständig plattformübergreifend und nicht zuverlässig. –
- 1. Abrufen des Laufwerksnamens in Java
- 2. Abrufen des Verzeichnisnamens in Java
- 3. Abrufen des Dateipfads von Dateiname in Java
- 4. Abrufen des System32-Ordners mit Java
- 5. Dateipfad in Java abrufen
- 6. Abrufen des Dateinamens von einem Speicherort in Java
- 7. JSON-Antwort als Teil des Restaufrufs in Java abrufen
- 8. Abrufen des letzten Änderungsdatums einer Datei in Java
- 9. Aktuellen Titel des aktiven Fensters in Java abrufen
- 10. Abrufen des Eigenschaftsnamens des Objekts
- 11. Abrufen des Namens in MySQL
- 12. Abrufen des Systemstatus in Python
- 13. Matlab abrufen Ergebnis in Java
- 14. Abrufen des Verzeichnisses, das neben dem Projektverzeichnis steht - JAVA
- 15. Abrufen des Hostnamens einer lokalen IP-Adresse (Java)
- 16. Formatierung des Systemdatums in Java
- 17. Abrufen des entfernten Texts aus einer Java-Textkomponente
- 18. Abrufen des Windows-Benutzerspracheneinstellungswerts
- 19. Abrufen des aktuellen Modulnamens
- 20. Programmgesteuertes Abrufen des Webanforderungsinitiators
- 21. Wert des Registrierungsschlüssels abrufen
- 22. Abrufen des SCON-Stammverzeichnisses
- 23. Abrufen der Größe (in Byte) des ResultSets mithilfe des Java-Codes
- 24. Abrufen des Assemblynamens
- 25. Ablaufzeit des Cache abrufen
- 26. Speicher des Objekts abrufen
- 27. Abrufen des StackTrace
- 28. Java OAuth Benutzer-ID abrufen
- 29. Abrufen des nächsten gültigen Tages
- 30. Abrufen von aktuellen capslock Zustand in Java
Links beide gebrochen – IanGilham
@IanGilham Ich denke, Sie wollten eine andere Antwort zu kommentieren – Supuhstar
Ja, mein schlechtes. Du scheinst den gefunden zu haben, den ich meinte. – IanGilham