Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/267.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()会删除目录名中的尾随点?_C#_.net - Fatal编程技术网

C# 为什么Path.GetDirectoryName()会删除目录名中的尾随点?

C# 为什么Path.GetDirectoryName()会删除目录名中的尾随点?,c#,.net,C#,.net,我希望结果是\folder\subfolder.,但它是\folder\subfolder(没有点)。为什么要删除尾随点 编辑:似乎不允许您在Windows中创建这样的文件夹。但看看这把小提琴,它似乎在.NET4.5中包含了圆点 您使用的是.NET 4.6.1还是更早版本?这在4.7及更高版本中已更改并正常工作您使用的是.NET 4.6.1还是更早版本?在4.7及更高版本中,这一点已被更改并正常工作。Microsoft在命名约定部分中指出: 不要以空格或句点结束文件或目录名。尽管底层文件系统可能

我希望结果是
\folder\subfolder.
,但它是
\folder\subfolder
(没有点)。为什么要删除尾随点


编辑:似乎不允许您在Windows中创建这样的文件夹。但看看这把小提琴,它似乎在.NET4.5中包含了圆点

您使用的是.NET 4.6.1还是更早版本?这在4.7及更高版本中已更改并正常工作

您使用的是.NET 4.6.1还是更早版本?在4.7及更高版本中,这一点已被更改并正常工作。Microsoft在命名约定部分中指出:

不要以空格或句点结束文件或目录名。尽管底层文件系统可能支持此类名称,但Windows shell和用户界面不支持。但是,可以将句点指定为名称的第一个字符。例如,“.temp”

可能这就是圆点被删除的原因。

提到Microsoft时,在命名约定部分说了以下几点:

不要以空格或句点结束文件或目录名。尽管底层文件系统可能支持此类名称,但Windows shell和用户界面不支持。但是,可以将句点指定为名称的第一个字符。例如,“.temp”


可能这就是删除点的原因。

在windows中,不允许将句点(.)作为目录名的最后一个字符

MSDN

不要以空格或句点结束文件或目录名。尽管底层文件系统可能支持此类名称,但Windows shell和用户界面不支持。但是,可以将句点指定为名称的第一个字符。例如,“.temp”


因此.net假定此行为并默认删除它。在windows中,不允许将句点(.)作为目录名的最后一个字符

MSDN

不要以空格或句点结束文件或目录名。尽管底层文件系统可能支持此类名称,但Windows shell和用户界面不支持。但是,可以将句点指定为名称的第一个字符。例如,“.temp”


由于MS-DOS和扩展,因此.net假定此行为并在默认情况下删除它。以前甚至不可能有这样的目录名,默认情况下,在Windows上,仍然不可能用传统方法创建这样的目录。因为MS-DOS和扩展。以前甚至不可能有这样的目录名,默认情况下,在Windows上,仍然不可能用常规方法创建这样的目录。@ClaudiuConstantin不,你不能,只是确认了一下,它会自动删除尾随的点,我第一次错了,我觉得它起作用了,但这似乎不相关:@ClaudiuConstantin不,你不能,刚刚确认,它自动删除了尾随点,我第一次错了,我觉得它有效,但这似乎不相关:
Path.GetDirectoryName("/folder/subfolder./file.txt");