![]() |
#2
cpxuvs2016-05-26 17:44
|

public void Search(DirectoryInfo dir)
{
DirectoryInfo[] direct=dir.GetDirectories();
FileInfo[] files=dir.GetFiles();
foreach(FileInfo item in files)
{
if(TargetFileName==item.Name)//这里的TargetFileName是要搜索的文件名
{
Console.WriteLine(item.DirectoryName+item.Name);
}
}
foreach(DirectoryInfo item in direct)
{
Search(item);//如果注释掉这句,程序正常,在当前目录下的文件可以被搜索到
}
}
为了清楚点,我只贴这个方法,程序其它地方没有问题。{
DirectoryInfo[] direct=dir.GetDirectories();
FileInfo[] files=dir.GetFiles();
foreach(FileInfo item in files)
{
if(TargetFileName==item.Name)//这里的TargetFileName是要搜索的文件名
{
Console.WriteLine(item.DirectoryName+item.Name);
}
}
foreach(DirectoryInfo item in direct)
{
Search(item);//如果注释掉这句,程序正常,在当前目录下的文件可以被搜索到
}
}
报错:比如说如果我搜索的是E盘
未经处理的异常: System.UnauthorizedAccessException: 对路径“E:\$RECYCLE.BIN\S-1-5-18”的访问被拒绝。
在 (Int32 errorCode, String maybeFullPath)
在 `()
在 `1..ctor(String path, String originalUserPath, String searchPattern, SearchOption searchOption, SearchResultHandler`1 resultHandler, Boolean checkHost)
在 (String searchPattern, SearchOption searchOption)
在 ()
在 FileSearch.SearchFile.Search(DirectoryInfo dir)
在 FileSearch.SearchFile.Search(DirectoryInfo dir)
在 FileSearch.SearchFile.Search(DirectoryInfo dir)
在 FileSearch.SearchFile..ctor(String onedrive, String targetFile)
在 FileSearch.Program.Main(String[] args)
输入对D盘的搜索也是一样,是权限问题,还是程序问题?该如何解决?
还有这个程序,我是单独建的一个CS文件,没有建项目,在控制台下手动编译执行的,这会不会有影响?