0

我已经在各种线程中对此进行了研究,并为一两个部分找到了可行的解决方案,但我无法将两者联系起来。基本上我想在一个目录中搜索某个名称的文件,如果这个文件不止一次出现,那么我只想选择最近的文件。例如,如果我有三个名为 DOG 的文件,我只想要最近的一个。我使用的是 1.0 版,所以我不认为 Linq 是和选项。这是与我发现的解决方案最接近的匹配项,我相信它会提取最新文件

var targetDirectory = new DirectoryInfo("G:\SomeFilePath");
string[] files =  System.IO.Directory.GetFiles(Dts.Variables["User::DirectoryPath"].Value.ToString());
string lastFileName=string.Empty;
foreach (string Current_filename in files)
{
    if (string.Compare(Current_filename,lastFileName)>=1)
    {
        lastFileName = Current_filename;          
    }        
}
Dts.Variables["User::LastFileName"].Value = lastFileName;

由于文件都在同一个目录中,我的查询是如果这段代码提取了最新的文件,我如何指定我想要的最新文件,例如,我有 3 个名为 dog 的文件,2 个名为 cat 等,我该如何只取最近的 Dog 文件和最近的 Cat 文件。

基于此线程中的答案,我正在使用此解决方案https://stackoverflow.com/a/1781668/451518返回最新的文件,但是我知道想根据名称分隔这些文件,例如我想搜索目录对于所有 DOG 或 CAT txt 文件,然后按链接中所示的最新功能执行排序

只是为了澄清文件名并不完全相同,我的意思是 DOG2 或 DOG3,但它的 DOG 部分很重要,所以基于 DOG 我需要选择最新的

在我的主要我打电话

        if(filename.StartsWith("DOG"))
        {
            GetLatestWritenFileFileInDirectory(directoryInfo);
        }

但是我想编辑 GetLatestWritenFileFileInDirectory 以便它只接收名称为 DOG 的文件

4

0 回答 0