大家好啊,向大家请教个问题:
如何遍历特定目录下的所有文件,包括文件路径导出到一个文本文件,
请对这块熟悉的朋友介绍下,谢谢

解决方案 »

  1.   

                DirectoryInfo dirinfo = new DirectoryInfo("路径");
                if (!dirinfo.Exists)
                    return;            foreach (FileInfo f in dirinfo.GetFiles("*.*"))
                {
                      f.Name ; //楼主自己发挥了
                }
      

  2.   


    //将内容写入到"c:\\a.txt"文件中
    FileStream fs = new FileStream("c:\\a.txt", FileMode.Create, FileAccess.Write);
    StreamWriter sw = new StreamWriter(fs);DirectoryInfo dirinfo = new DirectoryInfo("路径"); 
    if (!dirinfo.Exists) 
         return; foreach(DirectoryInfo di in dirinfo.GetDirectories())
    {
         sw.WriteLine("文件夹:" + di.FullName + "\n");
         sw.Flush();
    }foreach (FileInfo f in dirinfo.GetFiles("*.*")) 

         sw.WriteLine("文件:" + f.FullName + "\n");
         sw.Flush(); 
    }sw.Close();
    fs.Close();
      

  3.   


    感觉不能写"非文件夹"的文件名称。
    文件夹的子文件夹也没找出来
    using System.IO;  //文件输入输出        private void button3_Click(object sender, EventArgs e)
            {
                string DirPath = "";
                DirPath = this.txt_DirPath.Text.Trim().ToString();            //将内容写入到"d:\\a.txt"文件中
                FileStream fs = new FileStream("d:\\a.txt", FileMode.Create, FileAccess.Write);
                StreamWriter sw = new StreamWriter(fs);            DirectoryInfo dirinfo = new DirectoryInfo(DirPath);
                if (!dirinfo.Exists)
                    return;            //写文件夹名称
                foreach (DirectoryInfo di in dirinfo.GetDirectories())
                {
                    sw.WriteLine("文件夹:" + di.FullName + "\n");
                    sw.Flush();
                }            //写非文件夹名称(该循环语句不执行)
                foreach (FileInfo f in dirinfo.GetFiles("*.*"))
                {
                    sw.WriteLine("文件:" + f.FullName + "\n");
                    sw.Flush();
                }
                sw.Close();
                fs.Close();
            }
      

  4.   

    ccc110三人行,必有我师
    遍历文件夹 
      public string GetFolderInfo(string path)
    {
            if (Directory.Exists(path)) 
            {
                if (Directory.GetFileSystemEntries(path).Length == 0) 
                    strFiles = "";
                else
                {
                    string[] subdirectoryEntries = Directory.GetDirectories(path);
                    foreach (string subdirectory in subdirectoryEntries) 
                    {
                      string[] fileNames = Directory.GetFiles(subdirectory); 
                        foreach (string file in fileNames) 
                        {
                                FileInfo fi = new FileInfo(file);
                                strFiles += file.fullName + "<br>";
                            }
                        }
                        GetFolderInfo(subdirectory);
                    }
                }
            }
     }
       StreamWriter writer = null;
                    string filepath = "F:log.txt";
                    string message = "";
                    if (File.Exists(filepath))
                    {
                        writer = File.AppendText(filepath);
                    }
                    else
                    {
                        writer = File.CreateText(filepath);
                    }
                    writer.WriteLine(GetFolderInfo(""));
                    writer.Close();
      

  5.   

    private  string forFileLength(DirectoryInfo   directory)   
    {   
         StringBuilder sb=new StringBuilder ();
        DirectoryInfo[]   directorys   =   directory.GetDirectories();   
        FileInfo[]   files;   
        foreach   (DirectoryInfo   di   in   directorys)   
        {   
             sb.Append(forFileLength(di));   
        }   
        files   =   directory.GetFiles(); 
        foreach(FileInfo   file   in   files)   
        {   
            string temp = file.DirectoryName.ToString();       
            string name = file.Name;    
           sb.Append(temp +name);
        }  
    return sb.ToString(); 
    }
      

  6.   

    开始->运行->输入CMD回车->输入
    tree /f /a C:\你的路径 >要保存到的文件.txt如
    tree /f /a E:\kkun\Builder\简单三层项目 >文件列表.txt输出:文件夹 PATH 列表
    卷序列号为 F057-830D
    E:\KKUN\BUILDER\简单三层项目
    |   EnInsert.sql
    |   EnSelect.sql
    |   EnUpdate.sql
    |   
    +---Base
    |       BLLBase.cs
    |       DALBase.cs
    |       EntityBase.cs
    |       EventBase.cs
    |       
    +---BLL
    |       EnBLL.cs
    |       EnBLL.Designer.cs
    |       
    +---DAL
    |       EnDAL.cs
    |       EnDAL.Designer.cs
    |       
    +---Entity
    |       EnEntity.cs
    |       EnEntity.Designer.cs
    |       
    +---Interface
    |       IDelete.cs
    |       IInsert.cs
    |       ISelect.cs
    |       IUpdate.cs
    |       
    \---Util
            Pager.cs
            SqlHelper.cs
            TypeConvertor.cs
            
      

  7.   

    using namespace System.IO;
    string[] lstFiles = Directory.GetFiles(@"c:\temp");
    using (StreamWriter sw = new StreamWriter(@"c:\1.txt"))
    {
       foreach(string str in lstFiles)
       {
          sw.WriteLine(str);
       }
    }
      

  8.   

    using System.IO;                      //File
    using System.Drawing.Imaging;         //截图API
    using System.Runtime.InteropServices; //DLL
    using System.Collections;             //Array List
    using System.Diagnostics;             //Process
    using System.Threading;               //Thread
      public ArrayList al = new ArrayList(); 
            public int aaa = 0;   dt2.Columns.Add("No");
       dt2.Columns.Add("FileName");        #region  GetAllDirList
            public void GetAllDirList(string strBaseDir)        {
                DirectoryInfo di = new DirectoryInfo(strBaseDir);
                DirectoryInfo[] diA = di.GetDirectories();            if (aaa == 0)
                {
                    FileInfo[] fis2 = di.GetFiles();    //有关目录下的文件 
      
                    for (int i2 = 0; i2 < fis2.Length; i2++)
                    {
                        al.Add(fis2[i2].FullName);
                        //fis2[i2].FullName是根目录中文件的绝对地址,把它记录在ArrayList中
                    }
                }            for (int i = 0; i < diA.Length; i++)
                {
                    aaa++;
                    al.Add(diA[i].FullName + "\t<目录>");
                    //diA[i].FullName是某个子目录的绝对地址,把它记录在ArrayList中
                    DirectoryInfo di1 = new DirectoryInfo(diA[i].FullName);
                    DirectoryInfo[] diA1 = di1.GetDirectories();
                    FileInfo[] fis1 = di1.GetFiles();    //有关目录下的文件
       
                    for (int ii = 0; ii < fis1.Length; ii++)
                    {
                        al.Add(fis1[ii].FullName);
                        //fis1[ii].FullName是某个子目录中文件的绝对地址,把它记录在ArrayList中                }
                    GetAllDirList(diA[i].FullName);
                    //注意:递归了。逻辑思维正常的人应该能反应过来
                }
            }
            #endregion        private void GetCurFile_List()
            {
                btn_facDir.Enabled = false;
                dt2.Clear();
                string str_path = "e:\\t01\\";           //源文件路径     
                string dest_path = "e:\\FileList.txt";   //目标文件路径
                string tmp = "";
                int seq = -1;            string str_FileList = "e:\\FileList.txt";
                al.Clear();
                this.GetAllDirList(str_path);            if (File.Exists(str_FileList))
                {
                    File.Delete(str_FileList);
                }            StreamWriter sw = new StreamWriter(dest_path);            //结果写入DataTable和TxtFile
                for (int i = 0; i < al.Count; i++)
                {
                    seq = i + 1;
                    DataRow tmprow = dt2.NewRow();
                    tmprow["No"] = seq.ToString();
                    tmprow["FileName"] = al[i].ToString();
                    dt2.Rows.Add(tmprow);                //拼接 "序号+文件名" 字符串
                    tmp = seq.ToString() + "\t" + al[i].ToString();
                    sw.WriteLine(tmp);    //写入换行符             
                }            sw.Flush();
                sw.Close();            this.dgv1.DataSource = dt2;
                btn_facDir.Enabled = true;        
            }