Path.GetDirectoryName("/folder/subfolder./file.txt");
我希望结果为\folder\subfolder.
,但它是\folder\subfolder
(没有点)。为什么删除尾随点?
修改:您似乎不允许在Windows中创建此类文件夹。但看看这个小提琴,似乎在.net 4.5中包含了点? https://dotnetfiddle.net/mq0OhR
答案 0 :(得分:2)
参考https://msdn.microsoft.com/en-us/library/aa365247%28VS.85%29.aspx Microsoft在命名约定部分中说明以下内容:
不要使用空格或句点结束文件或目录名称。虽然底层文件系统可能支持此类名称,但Windows shell和用户界面却不支持。但是,可以将句点指定为名称的第一个字符。例如," .temp"。
也许这就是点被移除的原因/原因。
答案 1 :(得分:0)
您使用的是.NET 4.6.1或更早版本吗?这已更改并在4.7及更高版本中正常工作
答案 2 :(得分:0)
在Windows中,不允许将句点(。)作为目录名的最后一个字符。
MSDN 说
不要使用空格或句点结束文件或目录名称。虽然底层文件系统可能支持此类名称,但Windows shell和用户界面却不支持。但是,可以将句点指定为名称的第一个字符。例如,“。temp”。
因此.net假定此行为并默认将其删除