我正在使用VS2013 Express for Desktop并使用Windows窗体。
我关注this MSDN Walkthrough "Creating an Explorer Style Interface with the ListView and TreeView Controls Using the Designer"。所以我试图让树视图从“MyComputer”级别开始,以便所有驱动器号都可供用户选择。
适用于MyDocuments,如下所示:
DirectoryInfo info = new DirectoryInfo(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments));
但是当我从自动完成中选择MyComputer时它不起作用:
DirectoryInfo info = new DirectoryInfo(Environment.GetFolderPath(Environment.SpecialFolder.MyComputer));
我明白了:
mscorlib.dll中出现未处理的“System.ArgumentException”类型异常 附加信息:该路径不是合法形式。
这是令人惊讶的,因为“MyComputer”在自动填充功能中可用,但与其他特殊文件夹不同。
谢谢。
更新 谢谢ByteBlast和CodyGray。
在这里询问我应该做些什么是适当的吗?
答案 0 :(得分:6)
MyComputer常量总是产生空字符串(""),因为没有 路径是为“我的电脑”文件夹定义的。
向DirectoryInfo
构造函数提供空字符串是导致ArgumentException
的原因。
Elsewhere on MSDN您可以找到有关为什么返回空字符串的说明:
如果操作系统没有创建文件夹,现有文件夹已删除,或者文件夹是虚拟目录(如“我的电脑”),则文件夹将不存在,该文件夹与物理路径不对应。