请问碰到DirectoryInfo为未放光盘的驱动器时该如何处理?

graying 2003-09-14 12:02:22
今天做了个遍历文件的过程
private void searchFile(string path,ListBox list)
{
DirectoryInfo dir = new DirectoryInfo(path);
if(!dir.Exists)
{
throw new ArgumentException("source dir doesn't exist -> " + path);
}
DirectoryInfo[] directories;
FileInfo[] files;
try
{
directories = dir.GetDirectories();
list.Items.Add(dir.FullName.ToString()+"\\");
files = dir.GetFiles();
foreach(DirectoryInfo di in directories)
{
this.searchFile(di.FullName.ToString(),list);
}
foreach(FileInfo fi in files)
{
list.Items.Add(dir.FullName.ToString()+"\\"+fi.Name);
}
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}

}

加了try就是因为碰到没有放光盘的驱动器时会报错,报错在try下面的第一句:directories = dir.GetDirectories();(但是加了try后还是报错,搞不懂)。
请问各位碰到这种情况该如何处理?有办法判断(if dir.类型==光盘 && dir.放光盘==false)吗?
...全文
35 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
graying 2003-09-15
  • 打赏
  • 举报
回复
谢谢,没想到就这么简单,而且dir.Exists我也已经用到过了。
graying 2003-09-14
  • 打赏
  • 举报
回复
怎么会贴成这样啊???
ArLi2003 2003-09-14
  • 打赏
  • 举报
回复
pass on VS2003
ArLi2003 2003-09-14
  • 打赏
  • 举报
回复
>但是加了try后还是报错,搞不懂

from this:
throw new ArgumentException("source dir doesn't exist -> " + path);


>if dir.类型==光盘 && dir.放光盘==false

string myCDROM = @"F:\";
MessageBox.Show(Directory.Exists(myCDROM) ? "有光盘" : "无光盘");
graying 2003-09-14
  • 打赏
  • 举报
回复
谁来帮帮我啊,贴了一天了,也没人回音吗?

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧