在这里查看这个问题后:Get all DVD drives in Java
在我看来,当驱动器内有cd / dvd时,有一种方法可以辨别硬盘驱动器和DVD / CD驱动器。但是,如果驱动器为空,则该方法会失败。
我的问题是:4年后是否有一种方法可以识别哪些驱动器是硬盘驱动器,哪些驱动器是cd / dvd / blueray驱动器,即使这些驱动器内部没有CD / DVD /蓝光?
编辑: 目标操作系统是Linux
答案 0 :(得分:2)
您可以运行系统命令,还是必须是纯Java?如果您可以运行系统命令,请尝试:
Runtime.getRuntime().exec("more /proc/sys/dev/cdrom/info");
这会给你类似的东西:
CD-ROM information, Id: cdrom.c 3.20 2003/12/17
drive name: sr0
drive speed: 24
drive # of slots: 1
Can close tray: 1
Can open tray: 1
Can lock tray: 1
Can change speed: 1
Can select disk: 0
Can read multisession: 1
Can read MCN: 1
Reports media changed: 1
Can play audio: 1
Can write CD-R: 1
Can write CD-RW: 1
Can read DVD: 1
Can write DVD-R: 1
Can write DVD-RAM: 1
Can read MRW: 1
Can write MRW: 1
Can write RAM: 1
有关更全面的信息,您可以运行:
Runtime.getRuntime().exec("hwinfo --cdrom");
应该有一行如下:
Feature: CD-R, CD-RW, DVD-R, DVDRAM
如果您的系统中有蓝光驱动器,我会期待BDROM,BD-ROM,BD-R,BD-RW或类似的东西
答案 1 :(得分:0)
hwinfo --cdrom将提供比/ proc / sys / dev / cdrom / info更多的完整信息。
这里是一个示例,该系统带有内部DVD-RW驱动器,外部紧凑型DVD-RW驱动器和外部全尺寸DVD-RW驱动器。请注意/ proc / sys / dev / cdrom / info的重要解析细节:它为多个设备添加了列而不是块。还要注意第一行,这表明它所依赖的代码是在很早以前编写的:
CD-ROM information, Id: cdrom.c 3.20 2003/12/17
drive name: sr2 sr1 sr0
drive speed: 48 8 40
drive # of slots: 1 1 1
Can close tray: 1 1 1
Can open tray: 1 1 1
Can lock tray: 1 1 1
Can change speed: 1 1 1
Can select disk: 0 0 0
Can read multisession: 1 1 1
Can read MCN: 1 1 1
Reports media changed: 1 1 1
Can play audio: 1 1 1
Can write CD-R: 1 1 1
Can write CD-RW: 1 1 1
Can read DVD: 1 1 1
Can write DVD-R: 1 1 1
Can write DVD-RAM: 1 1 1
Can read MRW: 1 0 1
Can write MRW: 1 0 1
Can write RAM: 1 1 1
请注意,紧凑型驱动器速度较慢,并且不支持雷尼尔山数据包写入(MRW)。另请注意,这些驱动器被列为支持DVD-R(读取:“ DVD破折号R”;没有“ DVD减去R”之类的东西),但是没有行指示它们是否支持DVD + R( “ DVD加R”)。这些驱动器中至少有一个可能会。
使用“ hwinfo --cdrom”获取更多信息,以下是其匹配的功能行(有更多数据可用;为简洁起见,此处将其剥离:
Features: CD-R, CD-RW, DVD, DVD-R, DVD-RW, DVD-R DL, DVD+R, DVD+RW, DVD+R DL, DVD-RAM, MRW, MRW-W
Features: CD-R, CD-RW, DVD, DVD-R, DVD-RW, DVD-R DL, DVD+R, DVD+RW, DVD+R DL, DVD-RAM
Features: CD-R, CD-RW, DVD, DVD-R, DVD-RW, DVD-R DL, DVD+R, DVD+RW, DVD+R DL, DVD-RAM, MRW, MRW-W
我们现在看到许多要点,您可能会说:“哦,那。”是的,哦。哦,DVD-R和DVD-RW之间的格式之战。哦,双层光盘。哦,DVD-RAM。哦,带多碟盒的CD换盘器(“可以选择磁盘”)。
我将稍后查看是否可以从BD-ROM驱动器中提取数据并进行更新。但是结果是,您可能将不得不以几种不同的方式来询问系统以获得完整的结果。
媒体检查使事情进一步复杂化。特别是,要说出有缺陷的光盘,空白光盘,在该特定驱动器中无法使用的有效光盘,打开的托盘以及各种其他情况之间的区别,可能需要熟悉发送低级IOCTL命令发送到设备。几乎可以使用任何一种语言来完成此操作,但是对于那些没有用C编写系统软件的人来说,这似乎很陌生。