У меня есть метод, который извлекает информацию о съемных устройствах NTFS:
private void getdriverinfo()
{
// get the usb flash driver
foreach (DriveInfo driveInfo in DriveInfo.GetDrives())
{
if (driveInfo.DriveType == DriveType.Removable && driveInfo.DriveFormat.Equals("NTFS"))
{
comboBox1.Items.Add(driveInfo.Name);
}
}
if (comboBox1.Items.Count == 0)
{
MessageBox.Show("No Removable Device Found , please plug in the USB drive and make sure it is in NTFS format and retry", "No Device Found!", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else if (comboBox1.Items.Count == 1)
{
comboBox1.Text = comboBox1.Items[0].ToString();
}
else
{
MessageBox.Show(comboBox1.Items.Count + " Removable Devices were found , please choose the device you want to protect");
}
}
private void Form1_Load(object sender, EventArgs e)
{
// get the usb flash driver
getdriverinfo();
}
Эта ошибка возникает:
System.IO.IOException: устройство не готово.
в System.IO .__ Error.WinIOError (Int32 errorCode, String MaybeFullPath)
в System.IO .__ Error.WinIODriveError (String driveName, Int32 errorCode)
вSystem.IO.DriveInfo.get_DriveFormat ()
на USB_Data_Protector.Form1.getdriverinfo ()
Это прекрасно работает на моем ноутбуке без ошибок.Эта ошибка отображается при запуске на виртуальном или другом компьютере.