我需要获取可执行文件的路径,而我获得的信息只是可执行文件名。我需要 文件路径,不是.exe名称
示例: 我只有“arma3.exe”,现在我需要找到它的路径。我需要这样的东西 “C:\ Program Files \ Arma3 \ arma3.exe”< - 文件路径
我不要求“我如何找到我的CURRENT WPF APPLICATION可执行路径的路径”,也不是“我如何获得给定X路径的文件名”。
请不要问我为什么需要找到路径或bla3。我有自己的理由这样做。
答案 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");