Environment.SpecialFolder.MyDocuments有效但是SpecialFolder.MyComputer不起作用?

时间:2014-09-05 06:03:14

标签: c# windows winforms visual-studio special-folders

我正在使用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。

在这里询问我应该做些什么是适当的吗?

1 个答案:

答案 0 :(得分:6)

The documentation声明:

  

MyComputer常量总是产生空字符串(""),因为没有   路径是为“我的电脑”文件夹定义的。

DirectoryInfo构造函数提供空字符串是导致ArgumentException的原因。

Elsewhere on MSDN您可以找到有关为什么返回空字符串的说明:

  

如果操作系统没有创建文件夹,现有文件夹已删除,或者文件夹是虚拟目录(如“我的电脑”),则文件夹将不存在,该文件夹与物理路径不对应。​​