创建位于每个公共子目录中的所有文件的列表

时间:2013-10-31 22:12:18

标签: c# .net

我很想用C#和.NET编写这个问题,并希望让我的程序运行更高效,所以我想知道是否有人可以帮助我。简而言之,我的程序会浏览一系列Excel文件并将数据复制到其中。这一切都很好,但我想让它更有效率。截至目前,我列出目录客户端中所有Excel文件路径的列表:

listClientExcelPaths = new List<String>(Directory.GetFiles(PATH_Root + PATH_Clients, "*.xlsx", SearchOption.AllDirectories));

然后我从列表中删除临时或显然不正确的Excel文件,然后循环遍历listClientExcelFiles并处理每个文件。当我打开Excel文件时,我确保Excel文件的内容是我想要的,如果不是,那么我将其关闭。

现在这一切都很好,但是为了使处理更加高效,我想只在每个客户端下的Admin文件夹中的Excel文件。所以每个客户端文件夹的目录结构都是这样的:ClientName\Admin

我的问题是:最有效的方法是什么?我正在考虑浏览列表中的每个路径并删除不包含Admin的路径?谁能举个例子呢?

非常感谢任何帮助!

感谢, 贾斯汀

1 个答案:

答案 0 :(得分:1)

你的想法很好。如果您使用LINQ没有问题,那么任务就是这样的单行:

var paths = new List<string>
{
    @"a\b\admin\c",
    @"x\y\z\",
    @"ddd\ggg\hhh\admin",
    @"zzz\yyy\rrr"
};

var filteredPaths = paths.Where (p => p.ToLower().Contains("admin")).ToList();

输出是:

a\b\admin\c 
ddd\ggg\hhh\admin