Получение корневого каталога по умолчанию в Java

Я делаю основной файловый браузер и хочу знать, как получить корневой каталог по умолчанию. Я знаю, что java.io.File.listRoots() дает все корни (для меня это A:\, C:\, D:\, E:\, F:\, G:\, H:\, I:\, L:\ T:\, U:\, X:\, Y:\, Z:\), но я хочу использовать тот, который пользователь использует в первую очередь (то есть тот, который работает с операционной системой на нем), поэтому я знаю, с чего начать просмотр.

Ответ 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();
}