gus*_*gus 2 c# windows special-folders visual-studio winforms
我正在使用VS2013 Express for Desktop并使用Windows窗体.
我正在关注这个MSDN演练"使用Designer使用ListView和TreeView控件创建资源管理器样式界面".所以我试图让树视图从"MyComputer"级别开始,以便所有驱动器号都可供用户选择.
它适用于MyDocuments,如下所示:
DirectoryInfo info = new DirectoryInfo(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments));
Run Code Online (Sandbox Code Playgroud)
但是当我从自动完成中选择MyComputer时,它不起作用:
DirectoryInfo info = new DirectoryInfo(Environment.GetFolderPath(Environment.SpecialFolder.MyComputer));
Run Code Online (Sandbox Code Playgroud)
我明白了:
mscorlib.dll中出现未处理的"System.ArgumentException"类型的异常附加信息:该路径不是合法格式.
这是令人惊讶的,因为"MyComputer"在自动完成中可用,但不像其他特殊文件夹那样工作.
谢谢.
更新: 谢谢ByteBlast和CodyGray.
在这里询问我应该做什么是不恰当的?
文件指出:
MyComputer常量始终生成空字符串(""),因为没有为"我的电脑"文件夹定义路径.
向DirectoryInfo构造函数提供空字符串是导致该字符串的原因ArgumentException.
在MSDN的其他地方,您可以找到有关返回空字符串的原因的说明:
如果操作系统未创建文件夹,现有文件夹已删除,或文件夹是虚拟目录(如"我的电脑"),则文件夹将不会物理存在,该目录与物理路径不对应.