我有一个文件夹。该文件夹包含许多子文件夹。每个子文件夹都有这么多文件夹和文件夹 MNC 。该MNC文件夹包含如此多的文件以及 .txt 文件。当我提供该主根文件夹的路径时,如何获取 .txt 文件。即例如,我有一个根文件夹名称 A 。 文件夹包含许多子文件夹。每个子文件夹都有这么多文件夹和文件夹 MNC 和 MNC 文件夹有这么多文件和 .txt 文件。如果我提供文件夹 A 的路径,那么它应该将 .txt 文件作为输出。我试过一些类型。但我无法得到正确的输出。请帮帮我。提前谢谢。
答案 0 :(得分:0)
您可以通过执行以下命令获取所有txt文件:
//Gets all *.txt files
string rootDir = @"C:\\Dokumentai\\Files\\A";
var txtFiles = Directory.GetFiles(rootDir, "*.txt", SearchOption.AllDirectories);
Console.WriteLine("txtFiles count:" + txtFiles.Count());
//Filter only txt files from "root\[any folder]\MNC\*.txt",
//the pattern can be improoved, becouse it takes all TXT files from from MNC folder including it subfolders...
string patternt = rootDir+@"\\(.*)\\MNC\\(.*).txt";
//From each file before compare raplacing "\\" to "\"
var txtFilesOnlyFromMncFolders = txtFiles.Where(filePath => Regex.IsMatch( filePath.Replace(@"\\", @"\"), patternt, RegexOptions.IgnoreCase)).ToList();
Console.WriteLine("txtFiles count:" + txtFilesOnlyFromMncFolders.Count());
// Printing founded files for debug purpose
foreach (var file in txtFilesOnlyFromMncFolders)
{
Console.WriteLine(file);
}
然后你可以通过
获取文件内容foreach(file in txtFiles)
{
//Check if file exists
if (File.Exists(file))
{
//Do something with file content
string fileContent = File.ReadAllText(file);
}
}