C# 遍历文件夹下所有子文件夹中的文件,得到文件名

如a文件夹下有 b,c,d三个子文件夹,b文件夹中有1.jpg,2.jpg等图片文件,c文件夹下也有1.jpg,2.jpg等图片文件,d文件夹下也有1.jpg,2.jpg等图片文件。该如何遍历得到那些图片文件得到文件名呢。

输入某文件夹路径,遍历该文件夹及其子文件夹(包括子文件夹的子文件夹等),获取其中所有文件的函数:

/// <summary>
/// 查找指定文件夹下指定后缀名的文件
/// </summary>
/// <param name="directory">文件夹</param>
/// <param name="pattern">后缀名</param>
/// <returns>文件路径</returns>
public void GetFiles(DirectoryInfo directory, string pattern, ref List<string> fileList)
{
if (directory.Exists || pattern.Trim() != string.Empty)
{
try
{
foreach (FileInfo info in directory.GetFiles(pattern))
{
fileList.Add(info.FullName.ToString());
}
}
catch (System.Exception ex)
{
Console.WriteLine(ex.ToString());
}
foreach (DirectoryInfo info in directory.GetDirectories())//获取文件夹下的子文件夹
{
GetFiles(info, pattern, ref fileList);//递归调用该函数,获取子文件夹下的文件
}
}
}

使用实例:

List<string> FindResult = new List<string>();

GetFiles(new DirectoryInfo(@"C:\","*.*", ref FindResult); //获取C盘下的所有文件路径
GetFiles(new DirectoryInfo(@"\\192.168.1.107\Save"), "*.*", ref FindResult);//获取局域网上共享文件夹下的所有文件

温馨提示:内容为网友见解,仅供参考
第1个回答  2021-06-24

输入某文件夹路径,遍历该文件夹及其子文件夹(包括子文件夹的子文件夹等),获取其中所有文件的函数:

/// <summary>

/// 查找指定文件夹下指定后缀名的文件

/// </summary>

/// <param name="directory">文件夹</param>

/// <param name="pattern">后缀名</param>

/// <returns>文件路径</returns>

public void GetFiles(DirectoryInfo directory, string pattern, ref List<string> fileList)

foreach (FileInfo info in directory.GetFiles(pattern))

catch (System.Exception ex)

foreach (DirectoryInfo info in directory.GetDirectories())//获取文件夹下的子文件夹

语言结构

类:一个基本的C#类中包含数据成员、属性、构造器和方法。属性可以是静态或实例成员。在C#中类的声明与C++和Java很相似。但是,不像C++,C#结构体与类是不支持继承多个父类。但是,与Java相同的是,一个结构体可以实现接口(interface)。Java的关键字import已经被替换成using,它起到了同样的作用。

以上内容参考:百度百科-c#

本回答被网友采纳
第2个回答  推荐于2017-11-25
假设a文件夹在F盘下,代码如下。将文件名输出到一个ListBox中
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;

namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button2_Click(object sender, EventArgs e)
{
DirectoryInfo theFolder = new DirectoryInfo(@"F:\a\");
DirectoryInfo[] dirInfo = theFolder.GetDirectories();
//遍历文件夹
foreach (DirectoryInfo NextFolder in dirInfo)
{
// this.listBox1.Items.Add(NextFolder.Name);
FileInfo[] fileInfo = NextFolder.GetFiles();
foreach (FileInfo NextFile in fileInfo) //遍历文件
this.listBox2.Items.Add(NextFile.Name);
}

}
}
}本回答被提问者采纳
第3个回答  2012-04-05
/// <summary>
/// 查找指定文件夹下指定后缀名的文件
/// </summary>
/// <param name="directory">文件夹</param>
/// <param name="pattern">后缀名</param>
/// <returns>文件路径</returns>
public static List<string> GetFiles(DirectoryInfo directory, string pattern)
{
List<string> result = new List<string>();
if (directory.Exists || pattern.Trim() != string.Empty)
{
try
{
foreach (FileInfo info in directory.GetFiles(pattern))
{
result.Add(info.FullName.ToString());
num++;
}
}
catch { }
foreach (DirectoryInfo info in directory.GetDirectories())
{
GetFiles(info, pattern);
}
}
return result;
}

找了一下,以前写过这个方法,调用它就可以得到结果。
比如List<string> FindResult = GetFiles(@"C:\","*.*");就可以得到C盘下所有文件。
你也可以只查找图片,List<string> FindResult = GetFiles(@"盘符:\a","*.jpg");
第4个回答  2021-04-06
C# 遍历文件夹下所有子文件夹中的文件,得到文件名?
输入某文件夹路径,遍历该文件夹及其子文件夹(包括子文件夹的子文件夹等),获取其中所有文件的函数:

/// <summary>
        /// 查找指定文件夹下指定后缀名的文件
        /// </summary>
        /// <param name="directory">文件夹</param>
        /// <param name="pattern">后缀名</param>
        /// <returns>文件路径</returns>
        public void GetFiles(DirectoryInfo directory, string pattern, ref List<string> fileList)
        {
            if (directory.Exists || pattern.Trim() != string.Empty)
            {
                try
                {
                    foreach (FileInfo info in directory.GetFiles(pattern))
                    {
                        fileList.Add(info.FullName.ToString());
                    }
                }
                catch (System.Exception ex)
                {
                    Console.WriteLine(ex.ToString());
                }
                foreach (DirectoryInfo info in directory.GetDirectories())//获取文件夹下的子文件夹
                {
                    GetFiles(info, pattern, ref fileList);//递归调用该函数,获取子文件夹下的文件
                }
            }
        }

使用实例:

List<string> FindResult = new List<string>();

GetFiles(new DirectoryInfo(@"C:\","*.*", ref FindResult); //获取C盘下的所有文件路径
        GetFiles(new DirectoryInfo(@"\\192.168.1.107\Save"), "*.*", ref FindResult); //获取局域网上共享文件夹下的所有文件

C# 遍历文件夹下所有子文件夹中的文件,得到文件名
ref fileList);\/\/递归调用该函数,获取子文件夹下的文件}}} 使用实例:List<string> FindResult = new List<string>();GetFiles(new DirectoryInfo(@"C:\\","*.*", ref FindResult); \/\/获取C盘下的所有文件路径GetFiles(new DirectoryInfo(@"\\\\192.168.1.107\\Save"), "*.*", ref FindResu...

C#怎么将一个文件夹下所有文件(包括子文件夹内的)名字中包含某一字符...
递归到一个list表里,求List的count值就好

C#遍历指定文件夹中所有文件的3种方法
首先,通过使用Directory类的GetFiles方法,可以轻松完成遍历。只需一行代码,所有文件便一目了然。然而,对于大型文件夹,此方法可能因遍历整个文件夹而性能下降,尤其当文件数量较多时。其次,利用DirectoryInfo类,可以获取更丰富的文件属性。通过FileInfo对象,每个文件的详细信息得以展现。尽管操作过程稍显复杂...

asp.net(c#)遍历FTP下的文件夹、子文件夹、文件、子文件夹文件
} } private void GetFile(DirectoryInfo dInfo) { \/\/遍历文件夹中的文件 foreach (FileInfo file in dInfo.

c#问题,求好新人给个思路 用c#统计文件夹下所有文件的代码行数
string FolderPath = AppPath + Server.MapPath("你的文件夹名");\/\/获取文件夹路径 string[] FilesArray = System.IO.Directory.GetFiles(FolderPath,"*");\/\/获取所有文件 foreach (string file in FilesArray) {\/\/遍历文件 try { StreamReader txtRe= new StreamReader(FolderPath + "\\\\" ...

C#怎么读取某一文件夹下的所有文件夹和文件
递归遍历 foreach (DirectoryInfo d in dii){ getPath(d.FullName);list.Add(d.FullName);\/\/添加文件夹的路径到列表 } return list;} 调用此函数需要传入指定的文件夹路径,如 D:\\MyFile .可以将该文件夹下的文件和子文件夹路径全部获取,并利用递归,获取子文件夹内所有内容。

c#中遍历一个文件夹 并对其子文件夹中的文件移动到一个新创建的文件夹...
函数遍历时,分开文件和子文件夹处理。文件的话更名移动,子文件夹就可以再次调用本方法处理。其结果就是遍历全部的文件夹。--- 代码基本上是这样的,需要修改移动的文件名的话,修改file.MoveTo(Path.Combine(p_2, file.Name));这句就可以了。private void button2_Click(object sender, EventArgs e...

c#写一个函数,读出某个文件夹下所有文件和子文件夹的路径,并把这些路径...
d.FullName); list.Add(d.FullName);\/\/添加文件夹的路径到列表 } return list; }调用此函数需要传入指定的文件夹路径,如 D:\\MyFile .可以将该文件夹下的文件和子文件夹路径全部获取,并利用递归,获取子文件夹内所有内容。

C#如何遍历一个文件夹下面所有的文件
var currentDirSubDirs = di.GetDirectories().ToList();\/\/获取子目录 currentDirSubDirs.ForEach(p => GetAllFiles(p.FullName, allFiles));\/\/将子目录中的文件放入allFiles中 } 用法 List<string> a = new List<string>();GetAllFiles(@"d:\\files\\", a);a里面的就是所有文件 ...

c#实现如何遍历一个文件夹下的所有文件,并用md5函数算出所有文件的md5...
遍历文件夹使用函数System.IO.Directory.GetFiles()如果你想获得包括子文件夹下的所有文件 也有对应的重载 计算md5需要使用System.Security.Cryptography.MD5类 用法如下:MD5 md5 = MD5.Create();FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.Read);byte[] hash ...

相似回答