Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
获取Java中的所有DVD驱动器_Java_File_Cross Platform_Dvd - Fatal编程技术网

获取Java中的所有DVD驱动器

获取Java中的所有DVD驱动器,java,file,cross-platform,dvd,Java,File,Cross Platform,Dvd,,Java中是否有跨平台的方法来检查是否有任何驱动器: DVD光驱 …包含磁盘的文件 我希望用户能够选择要播放的DVD,在这种情况下,将选项缩小到DVD驱动器,而不是包括其他驱动器(如笔驱动器、硬盘驱动器等)会有所帮助。如果我能得到这样的驱动器列表,显示哪些驱动器包含磁盘也会很有帮助(同样的原因) 在四处搜索之后,尽管我还没有找到任何不涉及特定平台黑客的方法。还有什么吗?Java 7中的新版本可以做到这一点: FileSystem fs = FileSystems.getDefault();

,Java中是否有跨平台的方法来检查是否有任何驱动器:

  • DVD光驱
  • …包含磁盘的文件
我希望用户能够选择要播放的DVD,在这种情况下,将选项缩小到DVD驱动器,而不是包括其他驱动器(如笔驱动器、硬盘驱动器等)会有所帮助。如果我能得到这样的驱动器列表,显示哪些驱动器包含磁盘也会很有帮助(同样的原因)

在四处搜索之后,尽管我还没有找到任何不涉及特定平台黑客的方法。还有什么吗?

Java 7中的新版本可以做到这一点:

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