Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使字符串变量文字化?_C#_String_Path_Escaping - Fatal编程技术网

C# 如何使字符串变量文字化?

C# 如何使字符串变量文字化?,c#,string,path,escaping,C#,String,Path,Escaping,你知道如何用@符号将字符串变成文字或“转义”吗 string foo=@“\escape\string” 我在互联网上到处搜索,但我找不到一种让字符串变量这样做的方法。如果你想知道我为什么要这么做,这里有一点背景故事: 我正在为我的批处理脚本制作一个C#插件,它将基于一个字符串并将其保存在一个文件中。但是,我不断收到一个错误,名称为“路径名中的非法字符”或这些行中的其他内容。所以很自然,我就去谷歌搜索了,我能找到的唯一“修复”方法就是@the string。然而,问题是,我没有一个简单的纯文本字

你知道如何用@符号将字符串变成文字或“转义”吗

string foo=@“\escape\string”

我在互联网上到处搜索,但我找不到一种让字符串变量这样做的方法。如果你想知道我为什么要这么做,这里有一点背景故事:

我正在为我的批处理脚本制作一个C#插件,它将基于一个字符串并将其保存在一个文件中。但是,我不断收到一个错误,名称为“路径名中的非法字符”或这些行中的其他内容。所以很自然,我就去谷歌搜索了,我能找到的唯一“修复”方法就是@the string。然而,问题是,我没有一个简单的纯文本字符串变量。我获取可执行文件的位置,然后将其放入变量中,这样我就可以在可执行文件所在的位置(同一文件夹)创建文件。正如我之前所说,我不能这样做,因为奇怪的路径错误。我尝试了
String.Replace
Regex.Escape
,但它们都不起作用,因为调用函数获取位置时,似乎错误是正确的。作为参考,这是我用来获取可执行文件位置的“命令”


System.IO.Path.GetDirectoryName(System.Reflection.Assembly.getExecutionGassembly().Location)

是的,我也尝试过其他一些技巧,比如AppDomain.CurrentDomain.BaseDirectory等等,但它们似乎都不起作用


有办法解决这个问题吗?我真的很沮丧,因为这应该很容易…

在处理字符串/路径操作时,您可以尝试使用静态方法。

我认为您混淆了变量和常量。转义(通过双斜杠或@符号)仅适用于常量,而不适用于来自另一个函数调用的任何内容(如
AppDomain.CurrentDomain.BaseDirectory
)。您能显示给出错误的代码段吗?
System.IO.Path.GetDirectoryName(System.Reflection.Assembly.getExecutionGassembly().Location)
就是这样。在像C:\Users\…\Desktop\ Folder这样的地方,它可以工作,但是当涉及到一些特殊字符,如空格或点时,它就会崩溃。你能发布完整的相关代码吗?当然,第10行是有问题的家伙。你提到的这条路径被转义的双引号包围了吗?因为我怀疑它不喜欢空白。