C# 如何在只给定可执行文件名称的情况下获取可执行文件的路径?

C# 如何在只给定可执行文件名称的情况下获取可执行文件的路径?,c#,wpf,C#,Wpf,我需要得到一个可执行文件的路径,而我得到的信息只是可执行文件的名称。我需要文件路径,而不是.exe名称 例如: 我只有arma3.exe,现在我需要找到它的路径。我需要这样的东西 C:\Program Files\Arma3\Arma3.exe您要求的基本上是搜索文件名。。。 您可以通过多种方式实现这一点,例如: 不要忘记可能有多个磁盘驱动器: 在上面引用的示例中,搜索中返回的方法包含文件夹名In变量,因此您可以只写: IEnumerable<string> matchFiles =

我需要得到一个可执行文件的路径,而我得到的信息只是可执行文件的名称。我需要文件路径,而不是.exe名称

例如: 我只有arma3.exe,现在我需要找到它的路径。我需要这样的东西
C:\Program Files\Arma3\Arma3.exe您要求的基本上是搜索文件名。。。 您可以通过多种方式实现这一点,例如:

不要忘记可能有多个磁盘驱动器:

在上面引用的示例中,搜索中返回的方法包含文件夹名In变量,因此您可以只写:

IEnumerable<string> matchFiles = possibleFiles.Where(a => a.EndsWith("/fileName.exe"))
您必须注意的另一点是,对于文件夹权限,请注意可能出现的异常


请记住,此搜索可能需要一段时间,可能还有其他搜索方法,如在windows注册表中,或仅在索引文件中,或使用多个线程,但这将是另一个问题的答案。

如果您只在程序文件目录中查找最有可能的可执行文件,您可以使用System.IO.Directory类的GetFiles方法:

string NewPath = System.IO.Directory.GetFiles(@"C:\Program Files\", "arma3.exe").FirstOrDefault();
如果可能有多个文件:

string[] NewPaths = System.IO.Directory.GetFiles(@"C:\Program Files\", "arma3.exe");

请注意,在您的计算机上的不同位置可能有多个同名的可执行文件。由于缺少其他信息,仅文件名可能无法唯一标识可执行文件。