为什么 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
的代码才有意义,因为确实没有包含该路径的目录
在我的项目中,我将 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
的代码才有意义,因为确实没有包含该路径的目录