【问题标题】:How to get path for an executable given ONLY the executable name?如何获取仅给定可执行文件名称的可执行文件的路径?
【发布时间】:2014-05-21 10:36:17
【问题描述】:

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

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

不是询问“如何找到我的当前 WPF APPLICATION 可执行路径的路径”或“如何获取给定 X 路径的文件名”。

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

【问题讨论】:

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

标签: c# wpf


【解决方案1】:

您要问的基本上是搜索文件名... 您可以通过多种方式做到这一点,例如:

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

在上面引用的例子中,搜索中方法的返回包含变量中的文件夹名称,所以你可以写:

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

您必须注意的另一个问题是文件夹权限,请注意可能的异常情况..

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

【讨论】:

    【解决方案2】:

    如果您只寻找最有可能在 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");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-24
      • 2021-08-24
      • 1970-01-01
      • 2018-03-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多