日期:2014-05-19  浏览次数:20956 次

询问遍历指定目录中子目录和文件问题
代码如下:
public   void   GetFilesCount(System.IO.DirectoryInfo   dirInfo)
                {

                        foreach   (System.IO.DirectoryInfo   subdir   in   dirInfo.GetDirectories())
                        {
                                pa   +=   subdir.Name   +   "| ";

                                foreach   (System.IO.FileInfo   fileinfo   in   subdir.GetFiles())
                                {
                                        totalFile1   +=   1;
                                        pb   +=   fileinfo.FullName   +   "| ";
                                   
                                }

                                totalFile   +=   1;
                                GetFilesCount(subdir);
                               
                        }
                }


我使用如下代码遍历指定目录中的子目录和文件名称。并且把上面代码放入了一个线程,但为当在遍历时,CPU会猛增到80-90????请问上面代码哪里有问题导致CUP猛增,谢谢盼复

------解决方案--------------------
是不是目录下的文件和子目录太多了,如果是文件太多这样应该是正常的吧,如果想CPU少占一点可以考虑在线程里sleep一下 :)
------解决方案--------------------
文件多的话就在
System.Thread.Threading.Sleep(100);
//(手写不知道写的对不对)
totalFile += 1;
GetFilesCount(subdir);
------解决方案--------------------
感觉楼住的递归没有用对,
public void GetFilesCount(System.IO.DirectoryInfo dirInfo)
{

foreach (System.IO.DirectoryInfo subdir in dirInfo.GetDirectories())
{
totalFile += 1; //如果子目录也计算在内的话
GetFilesCount(subdir);
}

foreach (System.IO.FileInfo fileinfo in subdir.GetFiles())
{
totalFile1 += 1;
}
}
试试这个行不?