为什么Visual Studio用反斜杠替换我的斜杠?

时间:2016-10-16 15:00:43

标签: c# xml backslash visual-studio-2015 slash

在我的项目中,我将xml文件保存到文件夹中。变量"标题"包含文件的名称。

string header = "anyString";

保存文件的行是:

xmlDoc.Save($@"D:\00_Coding\00_Repos\MarcSchaetz\MarcSchaetz.STCut\Data\{header}.cutml");

除了标题包含斜杠(/)之外,所有这些都很好用,所有这些都是好的。

string header = "d/d";

然后我得到一个DirectoryNotFoundException,因为Visual Studio找不到路径

"D:\00_Coding\00_Repos\MarcSchaetz\MarcSchaetz.STCut\Data\d\d.cutml"

因此,Visual Studio会使用反斜杠自动替换斜杠。但是为什么以及如何在变量中保存带斜杠的文件?

1 个答案:

答案 0 :(得分:1)

Visual Studio不会将/替换为\。检查一下:

string header = "d/d";
string result = $@"D:\00_Coding\00_Repos\MarcSchaetz\MarcSchaetz.STCut\Data\{header}.cutml";

//Result: D:\\00_Coding\\00_Repos\\MarcSchaetz\\MarcSchaetz.STCut\\Data\\d/d.cutml

至于在路径中使用/ - 它不能用于操作系统中的文件/目录的名称。如果您尝试创建,则会得到以下结果:(我尝试插入/

enter image description here

因此,抛出DirectoryNotFoundException的代码才有意义,因为实际上没有该路径的目录