为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C#
呼啦一阵风 2021-08-22 17:15:28
我有一个名为 path 的变量,它是我程序中的外部输入。例如 path = "C:\OpenSSL-Win64\bin\public_privatekey.pfx";我想将路径转换为 @"C:\OpenSSL-Win64\bin\public_privatekey.pfx" 以便反斜杠不会被读取为转义字符。外部输入不能在输入中手动添加双反斜杠。即不能输入“C:\\OpenSSL-Win64\\bin\\public_privatekey.pfx”。有没有办法做到这一点?
查看完整描述

3 回答

?
智慧大石

TA贡献1946条经验 获得超3个赞

如果您的字符串来自外部源并且不是硬编码的,例如您从文件中读取它,那么该字符串已经被转义了。你不需要做任何进一步的逃避。试试看:


var path = GetThePath();

ConSole.WriteLine(path); // prints C:\OpenSSL-Win64\bin\public_privatekey.pfx

要验证是否只需path在调试时将鼠标移到-variable 上:

//img1.sycdn.imooc.com//6122161c0001d62006630101.jpg

但是,如果您自己输入字符串,则需要对斜杠进行转义:

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

甚至更简单地添加逐字逐句:

var path = @"C:\OpenSSL-Win64\bin\public_privatekey.pfx";


查看完整回答
反对 回复 2021-08-22
?
慕容3067478

TA贡献1773条经验 获得超3个赞

这听起来像是配置而不是代码。

我的解决方案是使用 json/xml/yaml 文件并在运行时从中读取设置。


查看完整回答
反对 回复 2021-08-22
?
跃然一笑

TA贡献1826条经验 获得超6个赞

当您将文本框中的文本分配给字符串类型变量时,将自动添加反斜杠以转义特殊字符,因为框架知道您将文本分配给字符串变量。

如果您需要编程实现,您可以通过在字符串前添加“@”来简单地使用逐字字符串。

string foo = textbox1.text;

或者

string foo = @"C:\OpenSSL-Win64\bin\public_privatekey.pfx";

但请记住,引号不会用 '@' 转义,因此如果您需要转义引号 ("),请执行以下操作:

string foo = "some text \"some more text\" and something else here";


查看完整回答
反对 回复 2021-08-22
  • 3 回答
  • 0 关注
  • 601 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信