输入某文件夹路径,遍历该文件夹及其子文件夹(包括子文件夹的子文件夹等),获取其中所有文件的函数:
/// <summary>
/// 查找指定文件夹下指定后缀名的文件
/// </summary>
/// <param name="directory">文件夹</param>
/// <param name="pattern">后缀名</param>
/// <returns>文件路径</returns>
public void GetFiles(DirectoryInfo directory, string pattern, ref List<string> fileList)
{
if (directoryExists || patternTrim() != stringEmpty)
{
try
{
foreach (FileInfo info in directoryGetFiles(pattern))
{
fileListAdd(infoFullNameToString());
}
}
catch (SystemException ex)
{
ConsoleWriteLine(exToString());
}
foreach (DirectoryInfo info in directoryGetDirectories())//获取文件夹下的子文件夹
{
GetFiles(info, pattern, ref fileList);//递归调用该函数,获取子文件夹下的文件
}
}
}
使用实例:
List<string> FindResult = new List<string>();
GetFiles(new DirectoryInfo(@"C:\","", ref FindResult); //获取C盘下的所有文件路径
GetFiles(new DirectoryInfo(@"\\1921681107\Save"), "", ref FindResult);//获取局域网上共享文件夹下的所有文件
引用
using SystemIO;
方法
void GetAllFiles(string dir,List<string> allFiles)
{
DirectoryInfo di = new DirectoryInfo(dir);
if (!diExists) return;//如果目录不存在,退出
var currentDirFiles = diGetFiles()Select(p => pName);//获取当前目录所有文件
allFilesAddRange(currentDirFiles);//将当前目录文件放到allFiles中
var currentDirSubDirs = diGetDirectories()ToList();//获取子目录
currentDirSubDirsForEach(p => GetAllFiles(pFullName, allFiles));//将子目录中的文件放入allFiles中
}
用法
List<string> a = new List<string>();
GetAllFiles(@"d:\files\", a);
a里面的就是所有文件
用DOS命令:
(假设你的这个文件夹是c:\pdf)
dir
c:\pdf\pdf
>
c:\pdf\listtxt
运行完之后到目录下去找一个文件名是listtxt的,打开就是文件名了
我也有同样的问题。
到网上查,感觉实现较复杂。
最后用的是c语言调用cmd
生成文件列表文件,再用c语言去读取那个文件。进行字符串处理。
c语言调用cmd 为 system(“cmd命令”);
比如:
#include <stdioh>
#include <dosh>
int main()
{
system("dir /s /b > filelisttxt");/这是全部文件,包括子目录/
system("dir txt /b > filelist2txt"); /当前目录下的所有txt文件,不包括子目录/
/然后/
sleep(100);
FILE ptrin = fopen("filelist","r");/读取并进行处理/
/处理/
/关闭文件flose(ptrin);/
return 0;
}
希望有谁有更好的办法。
以上就是关于C# 遍历文件夹下所有子文件夹中的文件,得到文件名全部的内容,包括:C# 遍历文件夹下所有子文件夹中的文件,得到文件名、C#如何遍历一个文件夹下面所有的文件、如何获取某文件夹中所有子文件夹的文件名等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)