获取Java中的所有DVD驱动器
,Java中是否有跨平台的方法来检查是否有任何驱动器:获取Java中的所有DVD驱动器,java,file,cross-platform,dvd,Java,File,Cross Platform,Dvd,,Java中是否有跨平台的方法来检查是否有任何驱动器: DVD光驱 …包含磁盘的文件 我希望用户能够选择要播放的DVD,在这种情况下,将选项缩小到DVD驱动器,而不是包括其他驱动器(如笔驱动器、硬盘驱动器等)会有所帮助。如果我能得到这样的驱动器列表,显示哪些驱动器包含磁盘也会很有帮助(同样的原因) 在四处搜索之后,尽管我还没有找到任何不涉及特定平台黑客的方法。还有什么吗?Java 7中的新版本可以做到这一点: FileSystem fs = FileSystems.getDefault();
- DVD光驱
- …包含磁盘的文件
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>");
}
}
FileSystem fs=FileSystems.getDefault();
对于(路径rootPath:fs.getRootDirectories())
{
尝试
{
FileStore store=Files.getFileStore(rootPath);
System.out.println(rootPath+:“+store.type());
}
捕获(IOE异常)
{
System.out.println(rootPath+:“+”);
}
}
在我的系统上,它提供了以下内容(驱动器D中有一张CD,其余的硬盘或网络共享):
C:\:NTFS
D:\:CDF
H:\:NTFS
M:\:NTFS
S:\:NTFS
T:\:NTFS
V:\:
W:\:NTFS
Z:\:NTFS
因此,对文件存储区的type()进行查询就可以做到这一点
如果驱动器中没有CD,则getFileStore()调用会引发
java.nio.file.FileSystemException:D::设备未就绪
不过真的有点像黑客。但它有助于识别可立即播放的驱动器。但是,我不想将其用于永久显示驱动器。这不是跨平台的。在使用EXT4的Linux上,输出为:/:rootfs
C:\: NTFS
D:\: CDFS
H:\: NTFS
M:\: NTFS
S:\: NTFS
T:\: NTFS
V:\: <error getting store details>
W:\: NTFS
Z:\: NTFS