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);//获取局域网上共享文件夹下的所有文件
2024-07-18 广告
输入某文件夹路径,遍历该文件夹及其子文件夹(包括子文件夹的子文件夹等),获取其中所有文件的函数:
/// <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#
推荐于2017-11-25
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);
}
}
}
}
/// 查找指定文件夹下指定后缀名的文件
/// </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");
输入某文件夹路径,遍历该文件夹及其子文件夹(包括子文件夹的子文件夹等),获取其中所有文件的函数:
/// <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); //获取局域网上共享文件夹下的所有文件