Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Environment.SpecialFolder.MyDocuments可以工作,但SpecialFolder.MyComputer不能';不行?_C#_Windows_Winforms_Visual Studio_Special Folders - Fatal编程技术网

C# Environment.SpecialFolder.MyDocuments可以工作,但SpecialFolder.MyComputer不能';不行?

C# Environment.SpecialFolder.MyDocuments可以工作,但SpecialFolder.MyComputer不能';不行?,c#,windows,winforms,visual-studio,special-folders,C#,Windows,Winforms,Visual Studio,Special Folders,我正在使用VS2013 Express for Desktop和Windows窗体 我跟在后面。所以我试图让treeview从“MyComputer”级别开始,这样所有的驱动器号都可以供用户选择 它适用于MyDocuments,如下所示: DirectoryInfo info = new DirectoryInfo(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)); 但当我从自动完成中选择MyComputer时,

我正在使用VS2013 Express for Desktop和Windows窗体

我跟在后面。所以我试图让treeview从“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”在autocomplete中可用,但不像其他特殊文件夹那样工作

多谢各位

更新: 谢谢你,拜特伯斯特和科迪格雷

在这里问我应该做什么合适吗?

指出:

MyComputer常量始终生成空字符串(“”),因为没有 为“我的电脑”文件夹定义了路径

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

您可以找到关于返回空字符串的原因的解释:

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


这将是学习如何使用调试器的好时机。创建一个额外变量,并将Environment.GetFolderPath(Environment.SpecialFolder.MyComputer)的结果放入其中。然后用调试器检查你得到的结果。@gus:我面临着同样的问题。你找到解决方案或替代方案了吗?面对同样的问题。请问有什么解决方案或替代方案?