C# 如何在系统路径中找到文件的位置,如get命令或where?

C# 如何在系统路径中找到文件的位置,如get命令或where?,c#,windows,filepath,C#,Windows,Filepath,我想知道某个DLL是否在系统路径上可用。在Powershell中,我可以使用get命令myfile.dll,在cmd中我可以使用where myfile.dll 我怎么能在C#中做到这一点?我必须手动解析环境。GetEnvironmentVariable(“path”),还是有更好的方法?不确定在哪里,但Get命令使用以下算法在内部解析文件位置(过于简化): 解析Environment.GetEnvironmentVariable(“路径”) 使用目录枚举每个路径中的所有文件。Enumerate

我想知道某个DLL是否在系统路径上可用。在Powershell中,我可以使用
get命令myfile.dll
,在cmd中我可以使用
where myfile.dll


我怎么能在C#中做到这一点?我必须手动解析
环境。GetEnvironmentVariable(“path”)
,还是有更好的方法?

不确定
在哪里
,但
Get命令
使用以下算法在内部解析文件位置(过于简化):

  • 解析
    Environment.GetEnvironmentVariable(“路径”)
  • 使用
    目录枚举每个
    路径中的所有文件。EnumerateFiles()
  • 对输入文件名与目录中的每个文件名执行不区分大小写的字符串比较

  • 我不知道“更好”对你意味着什么,但我可以为你做到这一点。@IInspectable:谢谢,但这带来了一系列我宁愿避免的特定于shell的行为。谢谢,我想我只能自己重新实现这个逻辑了。我在寻找一个现成的解决方案,我想没有。不,问题是它被烘焙到Windows中的库加载函数中,而不是直接公开。我应该补充一点,
    Get命令
    也会在搜索路径之前解析系统和windows目录,或多或少类似于safe