怎么遍历文件夹下面所有文件?

kc5488a 2012-12-18 05:03:03

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显示出了所有的文件名称,请问下要怎么遍历全部文件呢?
...全文
237 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Conmajia 2012-12-18
  • 打赏
  • 举报
回复
循环被。。谁说非得用递归了。。。
你的选择B 2012-12-18
  • 打赏
  • 举报
回复

            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();
kc5488a 2012-12-18
  • 打赏
  • 举报
回复
我是想把所有文件内容都读到tempStr 这个变量里面去。遍历整个文件已经实现了的,现在的问题就是tempSte只存储到第一个文件的内容
helloworldysn 2012-12-18
  • 打赏
  • 举报
回复
http://blog.sina.com.cn/s/blog_8c32cdb401013zzr.html
木头小菜 2012-12-18
  • 打赏
  • 举报
回复
    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);  
                    }  
                }  
            }  
      
      
        }  
    }  
杨友山 2012-12-18
  • 打赏
  • 举报
回复

        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);
             }
         }
心态要好 2012-12-18
  • 打赏
  • 举报
回复
如果文件夹下还有文件夹 那就要递归了

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧