Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.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# Path.GetDirectoryName在UNC路径上返回null_C#_.net - Fatal编程技术网

C# Path.GetDirectoryName在UNC路径上返回null

C# Path.GetDirectoryName在UNC路径上返回null,c#,.net,C#,.net,返回null和 Path.GetDirectoryName(@"C:\\"); 返回C:\ 虽然这正是本文中提到的行为,但我想知道为什么 Path.GetDirectoryName(@"C:\\Foo"); 返回null,而不是我所期望的\server.domain.tld\ 有人知道原因吗?通常,UNC路径结构是\{server}\{share}\{path….},因此您的UNC示例中的“Foo”相当于第一个示例中的“C:\”。这就是为什么UNC示例的路径会得到null “\\server

返回null和

Path.GetDirectoryName(@"C:\\");
返回C:\

虽然这正是本文中提到的行为,但我想知道为什么

Path.GetDirectoryName(@"C:\\Foo");
返回null,而不是我所期望的\server.domain.tld\


有人知道原因吗?

通常,UNC路径结构是
\{server}\{share}\{path….}
,因此您的UNC示例中的
“Foo”
相当于第一个示例中的
“C:\”
。这就是为什么UNC示例的路径会得到
null


“\\server\foo\bar”
的路径将是
“bar”

这条路径存在吗?阴谋论#1:API设计师有一个秘密的愿望,希望给未来试图使用相同代码处理Windows和UNC路径的开发人员带来混乱和微妙的错误。这一定是试图处理UNC的最混乱/没有帮助的API之一,尤其是由于
Path.GetDirectoryName(@“\\server\share\Path”)
返回UNC服务器和共享(\\server\share”)。。但是,等等“那些被建立为‘非目录’!我同意。。在2017/fw 4.6.x版本中,这个bug仍然存在于IO库中!
Path.GetDirectoryName(@"\\server.domain.tld\Foo");