在 C# 中使用表示文件路径的字符串变量?

我有一个名为 path 的变量,它是我程序中的外部输入。

例如 path = "C:\OpenSSL-Win64\bin\public_privatekey.pfx";

我想将路径转换为 @"C:\OpenSSL-Win64\bin\public_privatekey.pfx" 以便反斜杠不会被读取为转义字符。外部输入不能在输入中手动添加双反斜杠。即不能输入“C:\\OpenSSL-Win64\\bin\\public_privatekey.pfx”。有没有办法做到这一点?


呼啦一阵风
浏览 602回答 3
3回答

智慧大石

如果您的字符串来自外部源并且不是硬编码的,例如您从文件中读取它,那么该字符串已经被转义了。你不需要做任何进一步的逃避。试试看:var path = GetThePath();ConSole.WriteLine(path); // prints C:\OpenSSL-Win64\bin\public_privatekey.pfx要验证是否只需path在调试时将鼠标移到-variable 上:但是,如果您自己输入字符串,则需要对斜杠进行转义:var path = "C:\\OpenSSL-Win64\\bin\\public_privatekey.pfx";甚至更简单地添加逐字逐句:var path = @"C:\OpenSSL-Win64\bin\public_privatekey.pfx";

慕容3067478

这听起来像是配置而不是代码。我的解决方案是使用 json/xml/yaml 文件并在运行时从中读取设置。

跃然一笑

当您将文本框中的文本分配给字符串类型变量时,将自动添加反斜杠以转义特殊字符,因为框架知道您将文本分配给字符串变量。如果您需要编程实现,您可以通过在字符串前添加“@”来简单地使用逐字字符串。string foo = textbox1.text;或者string foo = @"C:\OpenSSL-Win64\bin\public_privatekey.pfx";但请记住,引号不会用 '@' 转义,因此如果您需要转义引号 ("),请执行以下操作:string foo = "some text \"some more text\" and something else here";
打开App,查看更多内容
随时随地看视频慕课网APP