【发布时间】:2014-09-01 00:36:10
【问题描述】:
我如何写出这样的支票...如果任何(或至少一个)驱动器类型是 CDRom,则为真/继续...否则为假(抛出错误)?
现在,我让它为每个未通过 CDRom 要求的驱动器检查抛出一个错误。我想我需要使用带有 Any() 的 LINQ 查询,但我不断收到错误。我可能写得不对。
我的计划是在以下情况下抛出错误消息:
-没有CD进入
-电脑上没有光驱
-输入的CD是空白的
-输入的CD不包含所需的特定文件
以下是我目前所拥有的并没有按照我想要的方式工作:
DriveInfo[] allDrives = DriveInfo.GetDrives();
foreach (DriveInfo d in allDrives)
{
Console.WriteLine("Drive {0}", d.Name);
Console.WriteLine(" File type: {0}", d.DriveType);
if (d.IsReady == true && d.DriveType == DriveType.CDRom)
{
DirectoryInfo di = new DirectoryInfo(d.RootDirectory.Name);
var file = di.GetFiles("*.csv", SearchOption.AllDirectories).FirstOrDefault();
if (file == null)
{
errorwindow.Message = LanguageResources.Resource.File_Not_Found;
dialogService.ShowDialog(LanguageResources.Resource.Error, errorWindow);
}
else
{
foreach (FileInfo info in di.GetFiles("*.csv", SearchOption.AllDirectories))
{
Debug.Print(info.FullName);
ImportCSV(info.FullName);
break; // only looking for the first one
}
}
}
else
{
errorwindow.Message = LanguageResources.Resource.CDRom_Error;
dialogService.ShowDialog(LanguageResources.Resource.Error, errorWindow);
}
}
目前的问题是循环设置为首先单独设置每个驱动器。在检查一个不是 CD-Rom 的驱动器后,它会抛出一条错误消息并为每个驱动器执行此操作。我只想要一个统一的错误消息。
【问题讨论】: