Безопасное извлечение USB-накопителя с помощью bat-файла
Я хотел бы иметь возможность программно безопасно удалить USB-накопитель, учитывая букву диска. На самом деле это должно быть реализовано в приложении, но я решил, что если это можно сделать с помощью пакетного скрипта, я легко перенесу его в код.
Единственный поворот заключается в том, что я не хочу включать какие-либо сторонние приложения или что-либо еще, поэтому, если кто-то может показать мне, как использовать diskpart
или что-нибудь альтернативное, я был бы благодарен.
1 ответ
Решение
Если Powershell приемлем для вашего языка пакетных сценариев, это так же просто, как
$vol = get-wmiobject -Class Win32_Volume | where{$_.Name -eq 'F:\'}
$vol.DriveLetter = $null
$vol.Put()
$vol.Dismount($false, $false)
РЕДАКТИРОВАТЬ:
Видя ваш комментарий, что вы будете делать это через приложение Java, вы можете просто вызвать объект WMI непосредственно из Java.
Пример Java:
public string GenerateScript(string driveLetter)
{
return "$vol = get-wmiobject -Class Win32_Volume | where{$_.Name -eq '" + driveLetter + :\\'};\n" +
"$vol.DriveLetter = $null\n" +
"$vol.Put()\n" +
"$vol.Dismount($false, $false)\n";
}