Я делаю основной файловый браузер и хочу знать, как получить корневой каталог по умолчанию. Я знаю, что java.io.File.listRoots()
дает все корни (для меня это A:\, C:\, D:\, E:\, F:\, G:\, H:\, I:\, L:\ T:\, U:\, X:\, Y:\, Z:\
), но я хочу использовать тот, который пользователь использует в первую очередь (то есть тот, который работает с операционной системой на нем), поэтому я знаю, с чего начать просмотр.
Получение корневого каталога по умолчанию в Java
Ответ 1
Получение корневого раздела операционной системы - это всего лишь вещь Windows
, так как на Unix
она всегда /
.
Следовательно, следующий код работает только для Windows
:
System.getenv("SystemDrive");
Он получает значение переменной среды SystemDrive
. Это всегда должно возвращать корневой раздел операционной системы, например. C:
.
Ответ 2
Не уверен, что это поможет, но вы можете попробовать:
import javax.swing.filechooser.*;
FileSystemView.getFileSystemView().getRoots()[0];
или
FileSystemView.getFileSystemView().getHomeDirectory();
или
System.getProperty("user.dir");
Для последнего фрагмента вы можете получить корневой каталог, перемещаясь вверх, используя getParent(), пока не будет возвращен null
.
Ответ 3
public static String rootDirectory(){
return File.listRoots()[0].getAbsolutePath();
}