try一下,
catch到异常就是读完了
:)很笨的办法

解决方案 »

  1.   

    indentLevel=dir?????????  
    这一句完全不必要啊,这里indentLevel是用来记录当前目录是搜索出发目录下的第几层而已,前面indentLevel++;就已经完成了“到子目录,层数加一”的动作了啊。
      

  2.   

    indentLevel=dir????????? 
    改成indentLevel = dir.GetDirectorys().Length
    行么?
      

  3.   


    indentLevel = dir.GetDirectories().Length;
    再去掉最后的indentLevel--;
      

  4.   

    static  int  dirCounter=0;  
    static  int  indentLevel=-1;  
    ///  <summary>  
    ///  应用程序的主入口点。  
    ///  </summary>  
    [STAThread]  
    public  static  void  Main()  
    {  
    myproduct  md=new  myproduct();  
    string  the=@"E:\CVS";  
    DirectoryInfo  dir=new  DirectoryInfo(the);  
    md.ExploreDirectory(dir);  
    Console.WriteLine("\n找到{0}个目录\n",dirCounter); 
    Console.ReadLine();
    }  
    public  void  ExploreDirectory(DirectoryInfo  dir)  
    {  
    dirCounter++;
    indentLevel++;
    Console.WriteLine("");  
    Console.WriteLine("({0}){1}({2})\n",indentLevel,dir.Name,dir.LastAccessTime);  
    DirectoryInfo  []  directory=dir.GetDirectories();
    foreach  (DirectoryInfo  newDir  in  directory)  
    ExploreDirectory(newDir);
                indentLevel--;
    }
    按楼主的意思写的,试试看
      

  5.   

    using  System;  
    using  System.IO;  
    namespace  c1  
    {  
        ///  <summary>  
        ///  Class1  的摘要说明。  
        ///  </summary>  
        class  myproduct  
        {  
            static  int  dirCounter=1;  
            ///  <summary>  
            ///  应用程序的主入口点。  
            ///  </summary>  
            [STAThread]  
            public  static  void  Main()  
            {  
                myproduct  md=new  myproduct();  
                string  the=@"D:\ruby\doc"; 
                DirectoryInfo  dir=new  DirectoryInfo(the);  
                Console.WriteLine("(0){0}({1})",the,dir.LastAccessTime);  
                md.ExploreDirectory(dir,1);  
                Console.WriteLine("\n找到{0}个目录\n",dirCounter); 
                Console.ReadLine();
            }  
            public  void  ExploreDirectory(DirectoryInfo  dir,int indentLevel)  
            {  
                                          
                DirectoryInfo[]  directory=dir.GetDirectories();  
                foreach(DirectoryInfo  newDir  in  directory)  
                {  
    Console.Write("  ");   for(int i=1;i<indentLevel;i++)
    {
    Console.Write("|  ");   }
    Console.Write("|--");   Console.WriteLine("({0}){1}({2})",indentLevel,newDir.Name,newDir.LastAccessTime);  
    dirCounter++;  
    ExploreDirectory(newDir,indentLevel+1);  
                }                                                   
            }  
        }
    }