C#搜索并获取软件的绝对路径

C# searching and getting Absolute Path of Software

我是 C# 的新手,我想在控制台应用程序中创建一个 自动运行管理器。为此,我想 从控制台读取关键字 ,例如 "Steam",我的程序应该 在 "C:\" 上搜索,并且在 所有子目录 中找到一个像我的关键字 一样调用的 文件夹,但正如我所说,我不知道 如何在所有子目录中搜索.

这就是我将如何在注册表中编写的带有 Steam 的小代码示例

//filePath would be the Path of the .EXE file that was found    
string filePath = "\"C:\Programme\Steam\Steam.exe\""; 
string autostartPath = @"Software\Microsoft\Windows\CurrentVersion\Run\";
RegistryKey autostart = Registry.CurrentUser.OpenSubKey(autostartPath, true);
autostart.SetValue("Steam", filePath);

如果有人知道如何在所有子目录搜索找到 正确的 .exe 文件

如果有 代码示例,我真的会感激

提前致谢

这相对容易使用 Directory.GetFiles():

string[] Files = Directory.GetFiles(@"C:\", "steam.exe", SearchOption.AllDirectories);

这将在 C:\ 和所有子目录中搜索与名称 steam.exe 匹配的所有文件,并且 return 所有结果作为 string.[=19 的数组=]

请注意,您可以在名称中使用通配符,这样 "steam*.exe" 将 return 所有以 steam 开头且扩展名为 exe 的文件。

如果需要,将 using System.IO 添加到 class 的顶部以导入 IO 命名空间。