| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3220 人关注过本帖
标题:写了一个搜索文件名的小程序,递归的时候出错
取消只看楼主 加入收藏
cpxuvs
Rank: 3Rank: 3
等 级:论坛游侠
威 望:3
帖 子:45
专家分:142
注 册:2015-12-22
结帖率:85.71%
收藏
 问题点数:0 回复次数:1 
写了一个搜索文件名的小程序,递归的时候出错
程序代码:
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);//如果注释掉这句,程序正常,在当前目录下的文件可以被搜索到
            }
           

        }
为了清楚点,我只贴这个方法,程序其它地方没有问题。
报错:比如说如果我搜索的是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文件,没有建项目,在控制台下手动编译执行的,这会不会有影响?




















搜索更多相关主题的帖子: direct files 
2016-05-26 16:39
cpxuvs
Rank: 3Rank: 3
等 级:论坛游侠
威 望:3
帖 子:45
专家分:142
注 册:2015-12-22
收藏
得分:0 
已经清楚了,有些系统文件不可访问。可以在Search(item);加个trycatch忽略错误
2016-05-26 17:44
快速回复:写了一个搜索文件名的小程序,递归的时候出错
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020248 second(s), 11 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved