询问遍历指定目录中子目录和文件问题
代码如下:
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;
}
}
试试这个行不?