搜索目录中的一对文件(相同的名称,不同的扩展名)

本文关键字:扩展名 文件 搜索 | 更新日期: 2023-09-27 18:18:58

给定一个目录,其中包含具有两个不同扩展名但名称相同的文件列表(例如,a.xmla.out一起),我如何找到有。out文件的XML文件?我受限于Windows环境,只能使用Visual Studio。

搜索目录中的一对文件(相同的名称,不同的扩展名)

我用下面的c#代码解决了这个问题。最后,代码可以短一点,但它的速度足以满足我的需求,并且工作得很好。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
namespace OrderFinder
{
    class Program
    {
        static void Main(string[] args)
        {
            string SearchDir = @"Y:'imported";
            string SearchExp = "*.xml";
            string MustHave = "{xmlfile}.out";
            string name, find;
            try
            {
                foreach (var file in Directory.EnumerateFiles(SearchDir, SearchExp, SearchOption.TopDirectoryOnly))
                {
                    name = file.Substring(SearchDir.Length + 1);
                    find = SearchDir + "''" + MustHave.Replace("{xmlfile}", Path.GetFileNameWithoutExtension(file));
                    if (!File.Exists(find))
                    {
                        Console.WriteLine("[WARN] Mismatched: " + Path.GetFileNameWithoutExtension(file));
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("[ERR] Exception: " + ex.Message);
            }
            Console.ReadLine();
        }
    }
}