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