为什么 Visual Studio 将我的斜线替换为反斜线?

Why does Visual Studio replaces my slash with a backslash?

在我的项目中,我将 xml-files 保存到一个文件夹中。变量 "header" 包含文件的名称。

string header = "anyString";

保存文件的行是:

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

这一切都很好,除非 header 包含斜杠 (/),例如:

string header = "d/d";

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

"D:[=15=]_Coding[=15=]_Repos\MarcSchaetz\MarcSchaetz.STCut\Data\d\d.cutml"

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

Visual Studio 不会用 \ 替换 /。检查这个:

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

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

至于在路径中使用 / - 它不能用于操作系统中的 files/directories 名称。如果你尝试创建你会得到这个:(我试图插入一个/

所以抛出 DirectoryNotFoundException 的代码才有意义,因为确实没有包含该路径的目录