在路径中组合和/
本文关键字:组合 路径 | 更新日期: 2023-09-27 18:12:55
我正在阅读这篇关于将对象写入XML文件的MDSN文章,其中有一部分创建了一个带有正斜杠和反斜杠的路径:
var path = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "//SerializationOverview.xml";
他们为什么这样做?我本以为Path.Combine
是首选,但相反,第一部分结果是带有反斜杠的路径(C:'...'
),并且它们故意附加了一个前斜杠的文件名。
你这么做有什么原因吗?我假设它无论如何都能工作,因为。net似乎在这类事情上相当聪明,但这有什么关系吗?
这段代码似乎是在演示可移植代码。
正斜杠在几乎所有操作系统上都是合法的路径分隔符。反斜杠在Win32上可用(包括与正斜杠混合)…. net确实运行在反斜杠不是合法分隔符的操作系统上。
也就是说,正斜杠不是理想的可移植性。Path.DirectorySeparatorChar
会更好,并且(正如您已经观察到的)Path.Combine()
将是最好的。
将正斜杠加倍似乎是一个错别字。反斜杠通常是双重的,以防止被解释为转义字符,但对于正斜杠来说,这既不必要也不可取。
注意:支持正斜杠,作为一个兼容性特性,在Win32层提供。您不能在传递给内核函数的路径中任意使用正斜杠,我也不会在使用''?'
前缀(防止规范化)时尝试使用它。
我认为这只是一个输入错误,我已经尝试了代码,它只是在我的文档文件夹下创建文件SerializationOverview.xml