【问题标题】:Why does FolderBrowserDialog not allow the desktop as SelectedPath when RootFolder is MyComputer?为什么当 RootFolder 为 MyComputer 时,FolderBrowserDialog 不允许桌面作为 SelectedPath?
【发布时间】:2011-10-18 15:58:04
【问题描述】:

这行得通:

FolderBrowserDialog dlg = new FolderBrowserDialog();
dlg.RootFolder = Environment.SpecialFolder.MyComputer;
dlg.SelectedPath = "C:\\Almo\\";
dlg.ShowDialog();

这不是:

FolderBrowserDialog dlg = new FolderBrowserDialog();
dlg.RootFolder = Environment.SpecialFolder.MyComputer;
dlg.SelectedPath = "C:\\Users\\Almo\\Desktop\\";
dlg.ShowDialog();

第一个打开文件选择对话框,从 C:\Almo 开始,第二个从 MyComputer 开始。有没有办法使这项工作?问题是我的应用程序的默认保存位置是桌面,我希望用户能够选择不同的位置,并且我希望对话框从当前位置开始。

【问题讨论】:

  • MyComputer 似乎包含在 Desktop 中。 :S

标签: .net winforms


【解决方案1】:

试试:

Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory)

【讨论】:

  • 我的路径存储为字符串,用户可以在MyComputer中选择任意目录。这将解决用户想要保存在桌面上的特殊情况,并且需要进行异常检查以查看它是否是桌面。知道为什么我上面的解决方案不起作用吗?
【解决方案2】:

使用:

dlg.SelectedPath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop)

这将为您提供运行代码的用户的桌面路径。

【讨论】:

  • 查看对 Knvn 答案的评论。
【解决方案3】:

显然,Win 7 中的桌面实际上并不存在于路径中

c:\Users\用户名\桌面

系统在命令提示符和 Windows 资源管理器中假装它确实如此。但由于它不存在,因此 SelectedPath 中要求其路径位于 RootFolder 下的部分不允许以这种方式设置路径。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-18
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-10
    相关资源
    最近更新 更多