Существует одна (непроверенная) возможность получить ваши диски с чистым Java-кодом. По крайней мере, в Windows.
Он немного взломан и не работает под Linux (потому что linux получает не столько интеграционную любовь от солнца, как я считаю).
import javax.swing._
import javax.swing.filechooser._
val chooser = new JFileChooser()
val view = chooser.getFileSystemView()
Кластер FileSystemView предоставляет несколько функций, таких как запрос возможных корней, если они являются диском (isDrive ()). Swing использует это для представления выбора файла с нужными значками, чтобы он работал под окнами, потому что IIRC показывает правильные символы там. Под Linux он, к сожалению, показывает только «/» root.
Одна из причин, почему это не работает в Linux, может заключаться в том, что разработчики Linux постоянно меняют свой предпочтительный способ представления такой информации в пользовательском пространстве. на данный момент это IIRC hal и dbus. Возможно, SUN не захотели публиковать новую версию java каждый раз, когда это изменяется.
Если чистая java не режет, возможно, вы можете использовать немного jni (что не так сложно использовать, если вы используете такие инструменты, как JNA или такие), чтобы напрямую обращаться к linux apis. Я не сделал этого, но мог бы попробовать, если вы заинтересованы.