C#中获得文件夹下所有文件

C#中获得文件夹下所有文件的两种方法
如果想要获得一个文件夹下所有的文件,对于大家来说应该很简单,此处也做了一下总结,归为两种方法,

方法一: 利用递归的方法获得所有文件


///
/// 存储文件的变量
///
List FileList = new List();
///
/// 获得文件夹下所有的文件(递归)
///
/// 文件夹的目录
/// 返回所有文件

List GetAllFileInfo(System.IO.DirectoryInfo dir)
{
System.IO.FileInfo[] allFile = dir.GetFiles();
foreach (System.IO.FileInfo file in allFile)
{
FileList.Add(file);
}
System.IO.DirectoryInfo[] allDir = dir.GetDirectories();
foreach (System.IO.DirectoryInfo d in allDir)
{
GetAllFileInfo(d);
}
return FileList;
}



方法二:利用类库,直接获得所有文件复制代码
///
/// 获得文件夹下所有的文件(类库调用)
///
/// 文件夹的目录
/// 返回所有文件

System.IO.FileInfo[] GetAllFileInfo2(System.IO.DirectoryInfo dir)
{
return dir.GetFiles(".", System.IO.SearchOption.AllDirectories);

}


调用端的代码:

        private void button1_Click(object sender, EventArgs e)
{
        System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(@"C:\Users\wjh\Desktop\测试专用包");
        #region 调用端(调用递归的方法)
        //List allFile= GetAllFileInfo(dir);
        //foreach (System.IO.FileInfo file in allFile)
        //{
        //    MessageBox.Show(file.Name);
        //}
        #endregion
        #region 调用端(类库的方法)
        System.IO.FileInfo[] allFiles = GetAllFileInfo2(dir);
        foreach (System.IO.FileInfo file in allFiles)
        {
            MessageBox.Show(file.Name);
        }
        #endregion
    }


两种方法都可以获得某个文件夹下所有的文件,一般情况下为了简单,大家都会用第二种方法,但是第一种方法也应该知道,它体现了 “递归” 的思想!

你可能感兴趣的:(C#,c#,开发语言,获取目录下的所有文件包含子文件)