在路径中组合和/

本文关键字:组合 路径 | 更新日期: 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