2015-11-25 3 views
3

Посмотрев на этот вопрос здесь: Get all DVD drives in JavaЕсть ли способ распознать, является ли диск диском dvd/cd/blueray без диска внутри?

Мне кажется, что с Java 7 есть способ различать между жесткими дисками и DVD/CD-дисков при наличии CD/DVD в привод. Но этот метод выходит из строя, если диск пуст.

Мой вопрос: есть ли теперь 4 года спустя способ распознавания того, какие диски являются жесткими дисками, а какие диски cd/dvd/blueray, даже если эти диски не имеют компакт-дисков/dvd/blueray внутри?

Edit: Целевая ОС для этого Linux

+0

@ the close voter Я бы ожидал хотя бы некоторого комментария относительно того, почему Закрыть. Единственная возможность, которую я вижу, это то, что вы видите это как дубликат вопроса, который я упомянул в моем вопросе. Хотя я ясно дал понять, что я думаю, что этот вопрос отличается от этого вопроса, поскольку я спрашиваю, существует ли какая-то кажущаяся слабость (по крайней мере, если я понял, что ответ на этот вопрос правильный, что это была слабость) решается спустя более 4 лет между ними (и новыми изданиями). Поэтому было бы интересно по причине задержек голосования. Тпй. – Thomas

+0

Ответ по-прежнему зависит от операционной системы. Какую ОС вы планируете? – BalusC

+0

А хороший момент. Возможно, перекрестная пластина мысли возможна, а просто перечитывается. будет обновлять мой вопрос. Целевая ОС - linux – Thomas

ответ

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"); 

В должно быть a строка, подобная:

Feature: CD-R, CD-RW, DVD-R, DVDRAM 

Если у вас есть blu-ray-накопитель в системе, я бы ожидал BDROM, BD-ROM, BD-R, BD-RW или что-то подобное

+0

Пришло время узнать, что делает программа. Таким образом, он отображает только диски cdrom (хорошо!). Он также хорошо работает с установленными 2 дисками? Кроме того, поскольку это dev/cdrom/info, он работает также для дисков с синим лучом? (только видел dvd/cd в этом выходе) и ограничивается ли он конкретными версиями/версиями linux или это общая программа? – Thomas

+0

Я исправил свой ответ, чтобы включить информацию о дисках Blu-ray. Обе команды должны присутствовать в каждой системе Linux (я тестировал на SLES, CentOS локально, но я знаю, что Ubuntu тоже). – Fallso

+0

Интересный tnx. будет +1 до сих пор и ждать несколько дней, если что-то еще придет (иначе я соглашусь с этим). – Thomas