GetLogicalDrives返回实际不存在的驱动器?

时间:2015-10-01 14:59:53

标签: c# mono c#-3.0

我最近有一个huge struggle with a disk I/O timeout bug,最终归结为System.IO.Directories.GetLogicalDrives()System.Environment.GetLogicalDrives()正在返回驱动器A:\,而实际上并不存在。我理解(在某种程度上)软盘控制器实际上并不够聪明,不知道物理媒体没有连接,因此我的书中得到了通过。

然而,我仍然得到一个实际上并不存在的幽灵驱动H:\。目前我的解决方案是将GetLogicalDrives()返回的所有驱动器传递给Directory.Exists(),以便在实际访问它们之前检查它们,但这看起来有点黑客。

(遗憾的是,我不能使用DriveInfo,因为这实际上是在Unity中,而Mono出于某种不可知的原因在我所绑定的版本中没有在Windows平台上实现DriveInfo。 )

所以我的问题是双重的:

  1. 有没有人解释为什么Windows会在显然请求存在的驱动器的函数中返回不存在的驱动器?

  2. 除了检查路径或使用DriveInfo测试驱动器是否确实存在之外,还有其他选择吗?

0 个答案:

没有答案