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
命名空间。
我是 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
命名空间。