无法识别的逃脱序列

时间:2010-07-21 02:38:24

标签: c#

VS 2005 WinXP

我正在编写一个将连接到samba共享的应用程序。

然而,在我的路径中,我收到编译错误:

unrecognized escape sequence

我使用的路径是:

string path = "\\Samba\sun005\admin_config\test.txt";

我还尝试使用双反斜杠:

string path = "\\Samba\\sun005\\admin_config\\test.txt";

但是,上面编译好了,但是当它运行时它抱怨“找不到路径”

还尝试了以下内容:

string path = @"\\Samba\sun005\admin_config\test.txt";

当我检入调试器时,我得到以下字符串

\\Samba\\sun005\\admin_config\\test.txt

我在我的例外中被拒绝访问。现在我正在思考它。我没有设置用户名和密码。我认为这是我的问题。

非常感谢任何建议,

2 个答案:

答案 0 :(得分:11)

UNC路径应该只包括机器名称,共享名称,相对于共享点的路径(不需要包含“samba”方案)。如果机器名称为sun005,则以下两者之一应该有效:

"\\\\sun005\\admin_config\\test.txt"
@"\\sun005\admin_config\test.txt"

答案 1 :(得分:4)

编译器将\\Samba\sun005\admin_config\test.txt视为\Samba\sun005\x07dmin_config\x09est.txt。但它只是不理解'\ s'。

它将\\Samba\\sun005\\admin_config\\test.txt视为编译器满意的\Samba\sun005\admin_config\test.txt,但您在开始时确实需要两个斜杠。为此你需要使用四个斜杠“\\ Samba ....”

@"\\Samba\sun005\admin_config\test.txt"正是您想要的!您在调试器中看到了额外的斜杠,因为它添加了调试器,因此您可以看到字符串中的实际内容。如果字符串中有换行符,则显示为'\ n'。