c# - 无法以编程方式查找 Win10 启动文件夹 C#

标签 c#

在 Windows 10 中运行这个简单的代码会抛出目录未找到异常。我可以手动导航到目录。给了什么?

shortcut_location_root = Environment.GetFolderPath(Environment.SpecialFolder.Startup);

if (String.IsNullOrEmpty(shortcut_location_root))
{   
  //FALLS IN HERE
    shortcut_location_root =
      Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + @"\Microsoft\Windows\Start Menu\Programs\Startup";

//BLOWS UP HERE DIRECTORY NOT FOUND
 if (File.Exists(Path.Combine(shortcut_location_root, "someFile" + ".url")))
 {
     //do stuff
 }

最佳答案

如果错误显示“找不到目录”,则该目录不存在。已知文件夹的位置由系统存储在注册表中,因此它不一定只因为存在注册表项而存在。相反,注册表项会指定文件夹的放置位置(如果需要)。

可能发生的情况是该文件夹是由 shell (Explorer.exe)“按需”创建的,这就是您可以浏览到它的原因。

只需先调用 System.IO.Directory.CreateDirectory。如果目录不存在,这将创建该目录,如果存在,则打开它。

关于c# - 无法以编程方式查找 Win10 启动文件夹 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43003326/

相关文章:

c# - 如何在网站项目的页面上使用其他C#源文件?

c# - 从 txt 文件中查找附加文本

c# - Unity - 健康栏作为屏幕周围的轮廓线

c# - 带有 3 个外键的 EF 链接表

c# - 强制执行事件处理接线

c# - 将数据绑定(bind)到嵌套的 ListView

c# - Entity Framework 7 关系

c# - 使用 LINQ Take() X 条记录但查明是否还有更多记录的正确方法是什么

c# - 如何从通用列表中删除基于带有构造函数的类的项目?

c# - Windows 通用应用程序中的加速度计摇动事件不起作用