在 C# 中使用表示文件路径的字符串变量?
using a string variable that represents a filepath in c#?
我有一个名为 path 的变量,它是我程序中的一个外部输入。
例如路径 = "C:\OpenSSL-Win64\bin\public_privatekey.pfx";
我想将路径转换为@"C:\OpenSSL-Win64\bin\public_privatekey.pfx",这样反斜杠就不会读作转义字符。外部输入不能在输入中手动添加双反斜杠。即无法输入 "C:\OpenSSL-Win64\bin\public_privatekey.pfx"。有办法吗?
如果您的字符串来自外部来源并且不是硬编码的,例如您从文件中读取它,然后字符串已经 被 转义。你不需要做任何进一步的转义。试试吧:
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";
当您将文本框中的文本分配给字符串类型变量时,系统会自动添加反斜杠以转义特殊字符,因为框架会理解您正在将文本分配给字符串变量。
如果您需要编程实现,只需在字符串前添加“@”即可使用逐字字符串。
string foo = textbox1.text;
或者
string foo = @"C:\OpenSSL-Win64\bin\public_privatekey.pfx";
但请记住,引号不会用“@”转义,因此如果您需要转义引号 ("),请按以下方式进行:
string foo = "some text \"some more text\" and something else here";
这听起来像是配置而不是代码。
我的解决方案是使用 json/xml/yaml 文件并在 运行 时间从中读取设置。
我有一个名为 path 的变量,它是我程序中的一个外部输入。
例如路径 = "C:\OpenSSL-Win64\bin\public_privatekey.pfx";
我想将路径转换为@"C:\OpenSSL-Win64\bin\public_privatekey.pfx",这样反斜杠就不会读作转义字符。外部输入不能在输入中手动添加双反斜杠。即无法输入 "C:\OpenSSL-Win64\bin\public_privatekey.pfx"。有办法吗?
如果您的字符串来自外部来源并且不是硬编码的,例如您从文件中读取它,然后字符串已经 被 转义。你不需要做任何进一步的转义。试试吧:
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";
当您将文本框中的文本分配给字符串类型变量时,系统会自动添加反斜杠以转义特殊字符,因为框架会理解您正在将文本分配给字符串变量。
如果您需要编程实现,只需在字符串前添加“@”即可使用逐字字符串。
string foo = textbox1.text;
或者
string foo = @"C:\OpenSSL-Win64\bin\public_privatekey.pfx";
但请记住,引号不会用“@”转义,因此如果您需要转义引号 ("),请按以下方式进行:
string foo = "some text \"some more text\" and something else here";
这听起来像是配置而不是代码。
我的解决方案是使用 json/xml/yaml 文件并在 运行 时间从中读取设置。