首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

如何遍历文件夹上面所有文件

2012-12-27 
怎么遍历文件夹下面所有文件?foldPath dialog.SelectedPaththis.label4.Text foldPathDirectoryInfo

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


  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显示出了所有的文件名称,请问下要怎么遍历全部文件呢?
[解决办法]
http://www.cnblogs.com/qianqianfy/archive/2009/07/08/1518974.html
[解决办法]

        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);
             }
         }


[解决办法]
    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);  
                    }  
                }  
            }  
      
      
        }  
    }  


[解决办法]

            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();

热点排行