Устройство не готово ошибка на DriveInfo.DriveFormat - PullRequest
1 голос
/ 25 января 2012

У меня есть метод, который извлекает информацию о съемных устройствах 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 ()

Это прекрасно работает на моем ноутбуке без ошибок.Эта ошибка отображается при запуске на виртуальном или другом компьютере.

1 Ответ

5 голосов
/ 25 января 2012

Можете ли вы проверить следующее перед доступом к DriveFormat? IsReady Property

driveInfo.IsReady
...