如何从根文件夹中获取文件?

时间:2015-09-25 07:35:22

标签: c#

我有一个文件夹。该文件夹包含许多子文件夹。每个子文件夹都有这么多文件夹和文件夹 MNC 。该MNC文件夹包含如此多的文件以及 .txt 文件。当我提供该主根文件夹的路径时,如何获取 .txt 文件。即例如,我有一个根文件夹名称 A 文件夹包含许多子文件夹。每个子文件夹都有这么多文件夹和文件夹 MNC MNC 文件夹有这么多文件和 .txt 文件。如果我提供文件夹 A 的路径,那么它应该将 .txt 文件作为输出。我试过一些类型。但我无法得到正确的输出。请帮帮我。提前谢谢。

1 个答案:

答案 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);
    }
}