在获得驱动器根列表后,Java中是否有一种跨平台的方式来检查是否有驱动器是:
- DVD 驱动器
- ...包含磁盘?
我希望用户能够选择要播放的 DVD,并且将选项范围缩小到 DVD 驱动器而不是包括其他驱动器(例如笔式驱动器、硬盘驱动器等)在这种情况下会有所帮助。如果我可以获得此类驱动器的列表,那么显示哪些包含磁盘将再次有所帮助(同样的原因。)
在四处搜索之后,我还没有找到任何不涉及特定平台黑客的方法。外面有什么吗?
在获得驱动器根列表后,Java中是否有一种跨平台的方式来检查是否有驱动器是:
我希望用户能够选择要播放的 DVD,并且将选项范围缩小到 DVD 驱动器而不是包括其他驱动器(例如笔式驱动器、硬盘驱动器等)在这种情况下会有所帮助。如果我可以获得此类驱动器的列表,那么显示哪些包含磁盘将再次有所帮助(同样的原因。)
在四处搜索之后,我还没有找到任何不涉及特定平台黑客的方法。外面有什么吗?
Java 7 中的新文件系统 API可以做到这一点:
FileSystem fs = FileSystems.getDefault();
for (Path rootPath : fs.getRootDirectories())
{
try
{
FileStore store = Files.getFileStore(rootPath);
System.out.println(rootPath + ": " + store.type());
}
catch (IOException e)
{
System.out.println(rootPath + ": " + "<error getting store details>");
}
}
在我的系统上,它给出了以下内容(驱动器 D 中有一张 CD,其余硬盘或网络共享):
C:\: NTFS
D:\: CDFS
H:\: NTFS
M:\: NTFS
S:\: NTFS
T:\: NTFS
V:\: <error getting store details>
W:\: NTFS
Z:\: NTFS
因此,对文件存储的type()的查询应该可以做到。
如果 CD 不在驱动器中,getFileStore() 调用会抛出
java.nio.file.FileSystemException: D:: 设备没有准备好。