gpt4 book ai didi

c# - 使用 DriveInfo.GetDrives() 时出现 'The device is not ready' 错误

转载 作者:行者123 更新时间:2023-12-03 22:04:57 25 4
gpt4 key购买 nike

我正在尝试制作一个查看所有驱动器的程序,尝试找到一个名为“DOM WORK”的可移动驱动器,然后获取驱动器名称(如 E:),然后将其打印出来。不幸的是,我收到此错误消息:

Unhandled Exception: System.IO.IOException: The device is not ready.

at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.__Error.WinIODriveError(String driveName, Int32 errorCode)
at System.IO.DriveInfo.get_VolumeLabel()
at WorkSync.Program.Main(String[] args) in d:\dominic\documents\visual studio 2015\Projects\WorkSync\WorkSync\Program.cs:line 19

我尝试将程序构建为可执行文件,然后以管理员权限运行它,但没有成功。

这是我正在使用的代码:
using System;
using System.IO;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace WorkSync
{
class Program
{
static void Main(string[] args)
{
DriveInfo[] allDrives = DriveInfo.GetDrives();
string memStickName = "";

foreach(DriveInfo drive in allDrives)
{
Console.WriteLine(drive.VolumeLabel);
if (drive.VolumeLabel == "DOM WORK" && drive.DriveType.ToString() == "removable")
{
memStickName = drive.Name;
break;
}
}

Console.WriteLine(memStickName);
}
}
}

最佳答案

您需要确保使用 DriveInfo.IsReady 实际上可以访问该驱动器。属性(property)。

foreach(DriveInfo drive in allDrives)
{
if (drive.IsReady == true)
{
// Check volume name here
}
}

关于c# - 使用 DriveInfo.GetDrives() 时出现 'The device is not ready' 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36670672/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com