2010-07-21 54 views
3

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

你用最后一行(用“@”)得到了什么错误?这似乎是正确的路要走。 – BoltClock 2010-07-21 02:46:06

+0

我认为你是对的。我没有设置用户名和密码。如果仍有问题,我会报告。 – ant2009 2010-07-21 02:53:59

+2

我假设你有一个名为'Samba'的服务器和一个名为'sun005'的共享目录为'admin_config'和'test.txt'文件。 ''\\\ Samba \\ sun005 \\ admin_config \\ test.txt“'可能应该工作。 – sarnold 2010-07-21 02:54:08

回答

11

UNC路径应该只包括计算机名称,共享名,相对于共享点的路径(包含一个“桑巴”计划是没有必要的)。在机器名是sun005的情况下,或者两个以下应工作:

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

非常感谢,帮助了我! – 2012-08-31 05:53:29

+0

@做了什么? – Bernhard 2014-11-19 19:21:34

+0

它告诉C#编译器将字符串解释为文字(即,不要将\字符用作转义码的注意序列) – 2014-11-19 19:52:16

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'。

+0

感谢您的信息。 – ant2009 2010-07-21 09:21:08