我有一个名为path的变量,它是程序中的外部输入。
例如路径=“ C:\ OpenSSL-Win64 \ bin \ public_privatekey.pfx”;
我想将路径转换为@“ C:\ OpenSSL-Win64 \ bin \ public_privatekey.pfx”,以使反斜杠不被视为转义字符。外部输入不能手动在输入中添加双反斜杠。即无法键入“ C:\\ OpenSSL-Win64 \\ bin \\ public_privatekey.pfx”。有办法吗?
答案 0 :(得分:2)
如果您的字符串来自外部来源,并且未进行硬编码,例如您从文件中读取它,然后已经 的字符串转义了。您无需做任何进一步的转义。只需尝试一下:
var path = GetThePath();
ConSole.WriteLine(path); // prints C:\OpenSSL-Win64\bin\public_privatekey.pfx
要在调试时确认将鼠标移到path
变量上,请执行以下操作:
var path = "C:\\OpenSSL-Win64\\bin\\public_privatekey.pfx";
或者通过添加逐字记录甚至更简单:
var path = @"C:\OpenSSL-Win64\bin\public_privatekey.pfx";
答案 1 :(得分:0)
当您将文本框中的文本分配给字符串类型变量时,由于框架了解您正在将文本分配给字符串变量,因此反斜杠将自动添加以转义特殊字符。
如果需要编程实现,只需在字符串前添加一个'@'即可使用逐字字符串。
string foo = textbox1.text;
或
string foo = @"C:\OpenSSL-Win64\bin\public_privatekey.pfx";
但是请记住,引号不会以'@'进行转义,因此,如果您需要转义引号(“),请执行以下操作:
string foo = "some text \"some more text\" and something else here";
答案 2 :(得分:0)
这听起来像是配置而不是代码。
我的解决方案是使用json / xml / yaml文件并在运行时从中读取设置。