c# 为什么单斜划线变成双斜划线

Python020

c# 为什么单斜划线变成双斜划线,第1张

斜杠是转义符,

如果在.NET 4.5中 你上面的@"\\\\192.168.1.1\\data" ,是可以正常访问到的,

之前的版本可能会有一些小问题。

试一下通过字符串格式化来重新写入路径

string.Format(@"\\\\" + "192.168.1.1" + @"\\"+"data")这样试试,

尽量是监视一下这一步输出的结果是多反斜杠还是少了。

??? Ruby的字符串对象生成有两种方式,字符串文字值加单引号或加双引号。

?

??? 两种方式主要区别在于构造文字量时,对字符串的处理次数不同。

?

??? 单引号时,Ruby对字符串值不做处理,里边是什么就是什么。

?

??? 双引号时,Ruby首先要查找文本中要替换的字符,即带反斜杠的字符,用二进制替换。最常见的就是\n;其次,这种方式下可以插入表达式#{...},那就要处理表达式,将其替换成具体的值。

一实例即可说明问题

@title="test"

p '<title>#{@title}</title>'

#原样输出

# =>"<title>\#{@title}</title>"

p "<title>#{@title}</title>"

#计算出变量的值,再变成字符串输出

# =>"<title>test</title>"

#内容亦可以进行字符串运算

p "<title>#{"this is "+@title}</title>"

# =>"<title>this is test</title>"

如果你通过某种方法,取得了路径和文件名,路径是单斜杠,现在要去掉文件名,单斜杠变双斜杠。例如

C:\Usr\prog\a.txt

变 C:\\Usr\\prog\\

程序如下:

#include <stdio.h>

#include <stdlib.h>

main(){

char p[100] ={'C',':',0x5c,'U','s','r',0x5c,'p','r','o','g',0x5c,'a','.','t','x','t'}

int i,j,L

printf("%s\n",p) // 变化前

L = strlen(p)

for (i=L-1i>0i--) if (p[i]==0x5c){p[i+1]='\0'break}

printf("%s\n",p) // 去掉文件名,只留路径

L = strlen(p)

for (i=L-1i>0i=i-1) if (p[i]==0x5c){ for (j=strlen(p)j>=ij--) p[j+1]=p[j]}

printf("%s\n",p)//变化后

return 0

}

===

反斜杠ASCII值是 0x5c