本文介绍了在C#编程语言中如何检索特定文件夹内符合一定格式(如图像)的所有文件的具体方法和实例代码。
本段落介绍如何使用C#获取指定路径文件夹中的全部图片或其它特定格式的文件名的方法。
一、编写获取文件名(全路径)子函数
在C#中,可以通过DirectoryInfo和FileInfo类来检索文件夹内的信息。需要创建一个用于从指定目录获取所有文件名称的辅助函数:
```csharp
void getFiles(string path, string suffix, ref List fileList, bool isSubcatalog)
{
string filename;
DirectoryInfo dir = new DirectoryInfo(path);
FileInfo[] file = dir.GetFiles();
foreach (FileInfo f in file)
{
filename = f.FullName;
if (filename.EndsWith(suffix))
fileList.Add(filename);
}
if (isSubcatalog)
foreach (DirectoryInfo d in dir.GetDirectories())
getFiles(d.FullName, suffix, ref fileList, true);
}
```
此函数接受四个参数:文件夹路径(path)、文件后缀名(suffix)、用于存储文件名称的列表(fileList)以及是否递归地检查子目录(isSubcatalog)。该方法首先获取指定目录下的所有文件,然后遍历每个文件以确定其扩展名是否与给定值匹配。如果匹配,则将此文件添加到输出列表中。若启用对子目录的搜索功能,则会调用自身来检索下一级别的内容。
二、在界面中放置按钮控件
接着,在应用程序界面内加入一个按钮,用户点击该按钮时会出现选择路径对话框,并执行getFiles函数:
```csharp
private void btnSelectPath_Click(object sender, EventArgs e)
{
FolderBrowserDialog dialog = new FolderBrowserDialog();
dialog.Description = 请选择图片所在的文件夹;
DialogResult result = dialog.ShowDialog();
if (result == System.Windows.Forms.DialogResult.Cancel)
return;
string folderPath = dialog.SelectedPath.Trim();
DirectoryInfo theFolder = new DirectoryInfo(folderPath);
if(theFolder.Exists)
{
List imageFiles = new List();
getFiles(folderPath, bmp, ref imageFiles, false);
}
}
```
此部分代码首先显示一个允许用户选择文件夹的对话框。选中后,将调用getFiles函数来获取选定路径下符合要求的所有文件名。
通过这种方法,开发者可以迅速地检索特定格式(如图片)的文件列表,并根据业务需求加以利用。