如何获取可执行文件的路径只有可执行文件名?

时间:2014-05-21 01:41:24

标签: c# wpf

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

示例: 我只有“arma3.exe”,现在我需要找到它的路径。我需要这样的东西 “C:\ Program Files \ Arma3 \ arma3.exe”< - 文件路径

要求“我如何找到我的CURRENT WPF APPLICATION可执行路径的路径”,也不是“我如何获得给定X路径的文件名”。

请不要问我为什么需要找到路径或bla3。我有自己的理由这样做。

2 个答案:

答案 0 :(得分:0)

您所要求的基本上是搜索文件名... 您可以通过多种方式执行此操作,例如:

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

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

IEnumerable<string> matchFiles = possibleFiles.Where(a => a.EndsWith("/fileName.exe"))

您必须拥有的另一个关注点是文件夹权限,请注意可能的例外情况。

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

答案 1 :(得分:0)

如果您只查找最可能位于Program Files目录中的可执行文件,则可以使用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");