日期:2014-05-19  浏览次数:21017 次

关于c#中的"\\"
我调用一个c写的dll,里面有一个参数要我传送文件的绝对位置.我传送 "c:\\abc.txt "这种类似的文件,都报错说是文件路径不对.而用vb6.0传 "c:\abc.txt "就没有问题.但是我的项目是在c#中完成的,请教诸位如何解决这个问题呢?

------解决方案--------------------
\是转义符,\\表示\这个字符
------解决方案--------------------
@ "c:\abc.txt "
------解决方案--------------------
可以写成 @ "c:\abc.txt "
------解决方案--------------------
是不是只传文件的绝对路径?
试传@ "C:\ "
------解决方案--------------------
如果,\\出现在源代码中,实际生成的字符串就是,c:\abc.txt
如果实际字符串c:\\abc.txt,就不对了~
------解决方案--------------------
up
------解决方案--------------------
@ "c:\abc.txt "
喜欢这个.
------解决方案--------------------
唉!来晚了,都被说了,一般用
@ "c:\abc.txt "
这个一般就不会出错
------解决方案--------------------
转义
------解决方案--------------------
用@转义一般都是因为用到路径

string str = @ "c:\aa\123.txt ";

显然比

string str = "c:\\aa\\123.txt ";

可读性好
------解决方案--------------------
注意\\是在编译的时候转义,在运行时字符串中作为参数传递这个字符串中还是一个\。
------解决方案--------------------
2种方法可以解决
一种是在每个\ 前加一个\
在C#里是不能识别 \的 必须加多加一\作为转义符

另一种方法 在你的 字符串前 加一个@符号 如 string str=@ "c:\aa\123.txt ";

------解决方案--------------------
撒也不说了....有分就接....
------解决方案--------------------
设断点调一下,我想问题不应该是在这~~
------解决方案--------------------
用@ "c:\abc.txt "

------解决方案--------------------
有没有c:\x.JPG和c:\xh.JPG文件
------解决方案--------------------
加这个@
------解决方案--------------------
也就是说,c#中无论是传@ "c:\abc.txt " 还是 "c\\abc.txt "都和vb.net中的 "c:\abc.txt "有不一样的地方.
=============================

牛人呐!!!!!

又一个微软重大BUG被你发现了。。。