在C#程序中,我正在创建DirectoryInfo的实例。通常,在目录名称之后似乎不需要尾部斜杠。但是,如果我传入“C:”,而不是获取我的硬盘驱动器的根目录,我得到我的可执行文件所在的目录!这当然看起来像一个错误,但是有一些隐藏的行为,我错过了吗?
答案 0 :(得分:2)
在文档中没有明确地提到它,但仅使用(驱动器):在列出的那些列表中没有列为有效的路径规范。
您正在实现的行为已经实现,您可以从.NET源代码中看到:
http://referencesource.microsoft.com/#mscorlib/system/io/directoryinfo.cs,90
Init方法(从构造函数调用)检查这种情况,如果找到它,则使用当前工作目录("。")。根据您启动EXE的方式,当前工作目录可以是EXE的位置。