0

次のコードを使用して、論理ドライブを取得します。

string[] strDrives = Environment.GetLogicalDrives();

しかし、それを反復したい場合、例外が発生し、次のメッセージが表示されます。

Drive Not Ready

準備完了のドライブを入手するにはどうすればよいですか?

4

3 に答える 3

6

DriveInfo を使用して、ドライブの準備ができているかどうかを判断します。

foreach (var oneDrive in strDrives)
{
    var drive = new DriveInfo(oneDrive)
    if (drive.IsReady) 
    {
       // Do something with the drive...
    }
}
于 2009-11-20T16:44:42.443 に答える
1

もちろん、これは Linq を使用して実現することもできます。

IEnumerable<DriveInfo> readyDrives = Environment.GetLogicalDrives()
    .Select(s => new DriveInfo(s))
    .Where(di => di.IsReady);
于 2009-11-20T16:50:38.183 に答える