Как я могу получить идентификатор тома в Windows, используя Java?
Я разрабатываю настольное Java-приложение для доступа к информации, формату, смене меток и идентификатору тома. Цель этого приложения - пользователи Windows, которые будут использовать в основном Windows XP или Windows 7.
Я получаю основную информацию, используя java File и FileSystemView; и я использую Runtime.getRuntime().exec() для выполнения внешних приложений Windows для выполнения других задач.
Я попытался использовать 'vol' и 'dir', чтобы получить информацию о volumeId, но я получаю следующую ошибку:
Starting: vol E:
java.io.IOException: Cannot run program "vol": CreateProcess error=2, O sistema não pode encontrar o arquivo especificado
at java.lang.ProcessBuilder.start(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
at app.CommandRunnerWithReturn.run(CommandRunnerWithReturn.java:24)
Caused by: java.io.IOException: CreateProcess error=2, O sistema não pode encontrar o arquivo especificado
at java.lang.ProcessImpl.create(Native Method)
at java.lang.ProcessImpl.<init>(Unknown Source)
at java.lang.ProcessImpl.start(Unknown Source)
... 5 more
Существует ли программа Java API или Windows, которую я могу использовать для получения объемной информации?
Заранее спасибо.
1 ответ
Некоторые команды встроены в оболочку. Для запуска этих команд вам нужно запустить оболочку для запуска команды. Для CMD вам нужно что-то вроде
CMD /C VOL
для Unix Shell вам нужно что-то вроде
sh -c "cd /path ; command > file"