程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#遍歷一個文件夾下的所有文件包括子文件夾

C#遍歷一個文件夾下的所有文件包括子文件夾

編輯:C#入門知識

using   System;  using   System.IO;     class   ListAllFilesDemo  {          public   static   void   Main()     {             Console.Write( "請輸入要查詢的目錄:   ");        string   dir   =   Console.ReadLine();        try        {          ListFiles(new   DirectoryInfo(dir));        }        catch(IOException   e)        {          Console.WriteLine(e.Message);        }      }             public   static   void   ListFiles(FileSystemInfo   info)    {      if(!info.Exists)   return;         DirectoryInfo   dir   =   info   as   DirectoryInfo;      //不是目錄      if(dir   ==   null)   return;         FileSystemInfo   []   files   =   dir.GetFileSystemInfos();      for(int   i   =   0;   i   <   files.Length;   i++)      {        FileInfo   file   =   files[i]   as   FileInfo;        //是文件        if(file   !=   null)          Console.WriteLine(file.FullName   +   "\t "   +   file.Length);          //對於子目錄,進行遞歸調用        else          ListFiles(files[i]);         }    }  }   C#中遍歷目錄下的目錄的文件(二)     1、遍歷一個目錄下的全部目錄,要用到System.IO.DirectoryInfo 類的GetDirectories方法:           DirectoryInfo dir = new DirectoryInfo(@"c:\");        foreach(DirectoryInfo dChild in dir.GetDirectories("*"))      {//如果用GetDirectories("ab*"),那麼全部以ab開頭的目錄會被顯示         Response.Write(dChild.Name + "<BR>");//打印目錄名         Response.Write(dChild.FullName + "<BR>");//打印路徑和目錄名     }     2、遍歷一個目錄下的全部文件,要用到System.IO.DirectoryInfo 類的GetFiles方法:     DirectoryInfo dir = new DirectoryInfo(@"c:\");        foreach(DirectoryInfo dChild in dir.GetFiles("*"))     {//如果用GetFiles("*.txt"),那麼全部txt文件會被顯示         Response.Write(dChild.Name + "<BR>");//打印文件名         Response.Write(dChild.FullName + "<BR>");//打印路徑和文件名     }     如何獲取指定目錄包含的文件和子目錄         1. DirectoryInfo.GetFiles():獲取目錄中(不包含子目錄)的文件,返回類型為FileInfo[],支持通配符查找;     2. DirectoryInfo.GetDirectories():獲取目錄(不包含子目錄)的子目錄,返回類型為DirectoryInfo[],支持通配符查找;     3. DirectoryInfo. GetFileSystemInfos():獲取指定目錄下(不包含子目錄)的文件和子目錄,返回類型為FileSystemInfo[],支持通配符查找; 如何獲取指定文件的基本信息;     FileInfo.Exists:獲取指定文件是否存在;     FileInfo.Name,FileInfo.Extensioin:獲取文件的名稱和擴展名;     FileInfo.FullName:獲取文件的全限定名稱(完整路徑);     FileInfo.Directory:獲取文件所在目錄,返回類型為DirectoryInfo;     FileInfo.DirectoryName:獲取文件所在目錄的路徑(完整路徑);     FileInfo.Length:獲取文件的大小(字節數);     FileInfo.IsReadOnly:獲取文件是否只讀;www.2cto.com     FileInfo.Attributes:獲取或設置指定文件的屬性,返回類型為FileAttributes枚舉,可以是多個值的組合     FileInfo.CreationTime、FileInfo.LastAccessTime、FileInfo.LastWriteTime:分別用於獲取文件的創建時間、訪問時間、修改時間;     采用遞歸的方式遍歷,文件夾和子文件中的所有文件。   public void FindFile(string dirPath) //參數dirPath為指定的目錄     {     //在指定目錄及子目錄下查找文件,在listBox1中列出子目錄及文件     DirectoryInfo Dir=new DirectoryInfo(dirPath);     try     {     foreach(DirectoryInfo d in Dir.GetDirectories()//查找子目錄     {     FindFile(Dir+d.ToString()+"\");     listBox1.Items.Add(Dir+d.ToString()+"\"); //listBox1中填加目錄名     }     foreach(FileInfo f in Dir.GetFiles("*.---")) //查找文件     {     listBox1.Items.Add(Dir+f.ToString()); //listBox1中填加文件名     }     }     catch(Exception e)     {     MessageBox.Show(e.Message);     }     }     用下面代碼限制文件的類型:     foreach(FileInfo f in Dir.GetFiles("*.---")) //查找文件     “*.---”指要訪問的文件的類型的擴展名

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved