1.利用下面的语句遍历所有目录
foreach (string file in Directory.GetFiles(path, "*.log", SearchOption.AllDirectories))
如果碰到拒绝访问的目录,程序会自动停止,出现一个错误。
如果用try的话应该怎么用?2.如果想搜索扩展名是.exe .bat 或.com的文件应该怎么做?3.这样搜索根目录的时候因为文件太多会导致程序死掉,应该怎么办?大家帮帮忙吧
foreach (string file in Directory.GetFiles(path, "*.log", SearchOption.AllDirectories))
如果碰到拒绝访问的目录,程序会自动停止,出现一个错误。
如果用try的话应该怎么用?2.如果想搜索扩展名是.exe .bat 或.com的文件应该怎么做?3.这样搜索根目录的时候因为文件太多会导致程序死掉,应该怎么办?大家帮帮忙吧
try
{
foreach (string file in Directory.GetFiles(path, "*.log", SearchOption.AllDirectories))
{
}
}
catch (Exception e01)
{
//有进程就要停止
//再抛错误
MessageBox.Show(e01.ToString());
}2,foreach (string file in Directory.GetFiles(path, "*.exe", SearchOption.AllDirectories)) 3,foreach (string file in Directory.GetFiles(path, "*.exe", SearchOption.TopDirectoryOnly)) //只搜索本目录的,怕死机就用多线程。。哈哈,抢沙发拉~~!
如果这样try的话,碰到错误的东西就停止了,不会继续向下循环了
具体怎么做才能让他跳过这个错误,继续循环呢?2.我的意思是.exe .bat或.com的文件都要,不是只要一个.exe哈多线程我还不会用,嘿嘿 谢谢楼上的啦
{
try
{
}
catch()
{
}
}把错误处理放到foreach里。
{
try
{
对每个文件的处理放此处。
}
catch()
{
}
}
问题是出在 Directory.GetFiles()里,4,5楼朋友的方法不可以用啊看来只能写递归自己遍历了....
那另外的两个问题呢?
{
try
{
}
catch()
{ 有错误
}
finaly
{
....跳过错误,执行其他
}
}
我现在也是遇到这个问题
准备枚举某一磁盘分区的所有文件,但是vista下有些文件拒绝访问,这时
foreach (string strfilename in Directory.GetFiles(strPath))
语句就会抛异常,getFiles还没完成就停止了
而我又想列举出除了不允许访问的那几个文件外的其他文件
如果有解决方法的话请告知一声,谢了