获取Java中的默认根目录

Sup*_*tar 10 java browser file

我正在制作一个基本的文件浏览器,并想知道如何获取默认的根目录.我知道这java.io.File.listRoots()给了所有的根源(对我而言A:\, C:\, D:\, E:\, F:\, G:\, H:\, I:\, L:\ T:\, U:\, X:\, Y:\, Z:\),但我想要用户主要使用的那个(即带有操作系统的那个),所以我知道从哪里开始浏览.

bti*_*nay 18

不确定这是否有任何帮助,但您可以尝试:

import javax.swing.filechooser.*;

FileSystemView.getFileSystemView().getRoots()[0];
Run Code Online (Sandbox Code Playgroud)

要么

FileSystemView.getFileSystemView().getHomeDirectory();
Run Code Online (Sandbox Code Playgroud)

要么

System.getProperty("user.dir");
Run Code Online (Sandbox Code Playgroud)

对于最后一个片段,您可以通过使用getParent()向上导航来获取根目录,直到null返回为止.


Bul*_*aza 7

获取操作系统根分区只是一件事,Windows因为Unix它总是/.

因此,以下代码Windows仅适用于:

System.getenv("SystemDrive");
Run Code Online (Sandbox Code Playgroud)

它获取SystemDrive环境变量值。这应该总是返回操作系统的根分区,例如C:.