在我的Scala(在Java上运行)应用程序我想获得包含DVD媒体的所有驱动器的列表,例如像这样的东西:
不确定是否可以获取光盘的名称,但无论如何,路径对我来说都很重要。
我更喜欢纯Java / Scala解决方案(使用file.io的东西)。如果那是不可能的,那么访问正确的Linux文件也很好(比如/ proc / something)。
提前致谢!
答案 0 :(得分:1)
我认为你对java.io. *感到不满意但是如果你不介意调用Linux命令,你可以通过以下方式汇编数据:
根据volname的手册页,它只返回ISO-9660文件系统(例如DVD)的数据,因此可以忽略任何返回空的设备路径。
答案 1 :(得分:0)
使用纯Java代码获取驱动器有一种(未经测试的)可能性。至少在Windows上。
它有点hacky并且在linux下不起作用(因为我认为linux没有那么多来自sun的集成爱)。
import javax.swing._
import javax.swing.filechooser._
val chooser = new JFileChooser()
val view = chooser.getFileSystemView()
FileSystemView clas提供了一些功能,例如询问可能的根目录 是一个驱动器(isDrive())。 Swing使用它来向文件选择器显示正确的图标 你应该在windows下工作,因为它会在那里显示正确的符号。下 不幸的是Linux只显示“/”根。
这在linux下不起作用的原因之一可能是,linux开发人员不断改变他们向用户空间呈现此类信息的首选方式。目前它是IIRC hal和dbus。也许SUN不想在每次更改时发布新的java版本。
如果纯java没有削减它,也许你可以使用一点jni(如果你使用像JNA这样的工具就不再那么难用了)直接访问linux apis。我没有这样做,但如果你有兴趣可以试试。