C# 查找的最佳方法是选择根目录的匹配目录中的所有匹配文件

C# 查找的最佳方法是选择根目录的匹配目录中的所有匹配文件,c#,C#,我想找到一个更好的方法 (就可读性、性能或代码长度而言?) 要执行以下操作,比如func?任何其他方式都可以 正如您从代码中看到的,它试图获取DatafilePath中的匹配文件,并检查那些具有匹配模式的文件是否存在于_checkFilePath路径中当前日期的所有匹配目录中 e、 g。 如果数据文件路径中有两个文件c:\abc\abc\U 1\U 2\U 3\U 4\U 12345.csv和c:\abc\abc\U 1\U 2\U 3\U 4\U 34567.csv 我想检查这两个文件是否有匹

我想找到一个更好的方法
(就可读性、性能或代码长度而言?) 要执行以下操作,比如func?任何其他方式都可以

正如您从代码中看到的,它试图获取DatafilePath中的匹配文件,并检查那些具有匹配模式的文件是否存在于_checkFilePath路径中当前日期的所有匹配目录中

e、 g。 如果数据文件路径中有两个文件c:\abc\abc\U 1\U 2\U 3\U 4\U 12345.csv和c:\abc\abc\U 1\U 2\U 3\U 4\U 34567.csv

我想检查这两个文件是否有匹配的模式“12345”和“34567”存在于c:\def中的所有目录中,例如c:\def\2019-10-25_123和c:\def\2019-10-25_124

谢谢各位

files = Directory.GetFiles(DataFilePath, FilePattern);
                var archiveDirs =  Directory.GetDirectories(_checkFilePath + "archive","*",SearchOption.AllDirectories).Where(x => x.Contains(string.Format("{0:yyyy-MM-dd}", DateTime.Now)));
                var filesToProcess = new List<string>();

                foreach (var archiveDirStr in archiveDirs)
                {
                    foreach (var file in files)
                    {
                        var key = file.Split('_')[5];
                        var contactFile = Directory.GetFiles(archiveDirStr, "*" + key + "*").FirstOrDefault();
                        if (contactFile != null)
                        {
                            filesToProcess.Add(file);
                        }
                    }
                }

                files = filesToProcess.ToArray();
files=Directory.GetFiles(DataFilePath,FilePattern);
var archiveDirs=Directory.GetDirectories(_checkFilePath+“archive”,“*”,SearchOption.AllDirectories)。其中(x=>x.Contains(string.Format(“{0:yyyyy-MM-dd}”,DateTime.Now));
var filesToProcess=new List();
foreach(档案库中的var archiveDirStr)
{
foreach(文件中的var文件)
{
var key=file.Split(“”“)[5];
var contactFile=Directory.GetFiles(archiveDirStr,“*”+key+“*”).FirstOrDefault();
如果(contactFile!=null)
{
filesToProcess.Add(文件);
}
}
}
files=filesToProcess.ToArray();

花一点时间,详细描述“以下”所做的工作。您衡量“最佳”的指标是什么?在可读性、性能或代码长度方面?添加了更多详细信息。谢谢