foldPath = dialog.SelectedPath;
                this.label4.Text = foldPath;
                
                DirectoryInfo TheFolder = new DirectoryInfo(foldPath);
                fileName = Path.GetFileName(dialog.SelectedPath);//获取当前打开文件夹名称
                foreach (FileInfo NextFile in TheFolder.GetFiles())
                {
                    this.listBox1.Items.Add(NextFile.Name);
                    string tempStr = File.ReadAllText(NextFile.FullName, Encoding.GetEncoding("GB2312"));//读取txt内容 
                    this.richTextBox1.Text = tempStr;
                }这个方法就只能遍历第一个文件的所有内容,我用listBox1显示出了所有的文件名称,请问下要怎么遍历全部文件呢?

解决方案 »

  1.   

    http://www.cnblogs.com/qianqianfy/archive/2009/07/08/1518974.html
      

  2.   


            private void ScanAllFolder(string pathName)
             {
                 try
                 {
                     if (!Directory.Exists(pathName))
                     {
                         return;
                     }
     
                     DirectoryInfo processDirectory = new DirectoryInfo(pathName);
     
                     FileSystemInfo[] fileSystemInfos = processDirectory.GetFileSystemInfos();
     
                     foreach (FileSystemInfo fileSystemInfo in fileSystemInfos)
                     {
                         if (fileSystemInfo is DirectoryInfo && 
                             
                             fileSystemInfo.Attributes != FileAttributes.Hidden && 
                             
                             fileSystemInfo.Attributes != FileAttributes.System)
                         {
                             DirectoryInfo directoryInfo = (DirectoryInfo)fileSystemInfo;
     
                             this.ScanAllFolder(directoryInfo.FullName);
                         }
                         else if (fileSystemInfo is FileInfo && 
                             
                             fileSystemInfo.Attributes != FileAttributes.Hidden && 
                             
                             fileSystemInfo.Attributes != FileAttributes.System)
                         {
                             FileInfo fileInfo = (FileInfo)fileSystemInfo;
     
                             //处理单个文件
                         }
                     }
                 }
                 catch (Exception ex)
                 {
                     //Debug.Assert(false, ex.Message);
                 }
             }
      

  3.   

        using System;  
        using System.Collections.Generic;  
        using System.Linq;  
        using System.Text;  
        using System.IO;  
        using System.Collections;  
          
        namespace ConsoleApplication6  
        {  
            class GetFilePath  
            {  
                private ArrayList dirs;  
          
                /// <summary>  
                /// 构造函数  
                /// </summary>  
                public GetFilePath()  
                {  
                     dirs = new ArrayList();  
                }  
          
                
                /// <summary>  
                /// 获取所有文件  
                /// </summary>  
                /// <param name="rootPath">文件夹路径</param>  
                /// <returns>所有文件路径集合</returns>  
                public ArrayList GetAllFileName(string rootPath)  
                {  
                    dirs.Add(rootPath);  
                    GetDirs(rootPath);  
                    object[] allDir = dirs.ToArray();  
          
                    ArrayList list = new ArrayList();  
          
                    foreach (object o in allDir)  
                    {  
                        list.AddRange(GetFileName(o.ToString()));  
                    }  
          
                    return list;  
                }  
          
                /// <summary>  
                /// 获取文件名  
                /// </summary>  
                /// <param name="dirPath">文件夹路径</param>  
                /// <returns>文件路径集合</returns>  
                private ArrayList GetFileName(string dirPath)  
                {  
                    ArrayList list = new ArrayList();  
          
                    if (Directory.Exists(dirPath))  
                    {  
                        list.AddRange(Directory.GetFiles(dirPath));  
                    }  
                    return list;  
                }  
          
                /// <summary>  
                /// 获取所有文件夹路径  
                /// </summary>  
                /// <param name="dirPath">文件夹路径</param>  
                private void GetDirs(string dirPath)  
                {  
                      
                    if (Directory.GetDirectories(dirPath).Length > 0)  
                    {  
                        foreach (string path in Directory.GetDirectories(dirPath))  
                        {  
                            dirs.Add(path);  
                            GetDirs(path);  
                        }  
                    }  
                }  
          
          
            }  
        }  
      

  4.   

    http://blog.sina.com.cn/s/blog_8c32cdb401013zzr.html
      

  5.   

    我是想把所有文件内容都读到tempStr 这个变量里面去。遍历整个文件已经实现了的,现在的问题就是tempSte只存储到第一个文件的内容
      

  6.   


                DirectoryInfo folder = new DirectoryInfo(@"D:\");
                if (!folder.Exists)
                    throw new DirectoryNotFoundException("该文件不存在");            //遍历该文件夹下面的子文件夹
                Console.WriteLine("DirectoryInfo");
                foreach (DirectoryInfo item in folder.GetDirectories())
                    Console.WriteLine(item.Name);            Console.WriteLine();
                Console.WriteLine("FileInfo");
                //遍历该文件夹下面的文件
                foreach (FileInfo item in folder.GetFiles())
                {   
                    Console.WriteLine(item.Name);
                    Console.WriteLine(File.ReadAllText(item.FullName, Encoding.GetEncoding("GB2312")));
                }            Console.Read();