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
我在我的例外中被拒绝访问。现在我正在思考它。我没有设置用户名和密码。我认为这是我的问题。
非常感谢任何建议,
答案 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'。