2010-11-10 193 views
0

我给我的文件路径,我想在我的程序中这样读取,path = "c:/users/abcd/desktop/read.txt"但调试时我发现它显示为c://users//abcd//desktop//read.txt这是一个无效的路径。找不到路径

有什么我失踪或我该如何去宣布一条路径。

+0

如果您的字符串包含反斜杠(\\)而不是斜线(/),那么这样做会很有意义,因为您必须转义反斜杠才能在字符串中获得文字反斜杠字符。如果你有斜杠并且它们翻倍,那么你一定在做一些你没有告诉我们的事情。 – lincolnk 2010-11-10 22:31:32

+0

你做的一切正确 – muek 2010-11-10 22:31:51

+2

我建议你总是在这些情况下发布实际的异常。他们通常会反映这个问题。 – steinar 2010-11-10 22:32:58

回答

0

尝试path = @"c:\user\abcd\desktop\read.txt"

我还没有与C#工作了一段时间,但有可能的是,调试器只是显示你的字符串逃过版本,但字符串本身是好的?点击调试器中字符串旁边的放大镜显示文本可视化器,看看它在那里看起来是否正常。

+0

但是File NOt Found的例外情况怎么样,我也是这样试过的,但仍然是它的例外。 – Ashutosh 2010-11-10 22:36:11

+0

我认为你是正确的....而通过cmd提示它说,系统找不到指定的路径,但如果我右键单击该文件,并看到它的路径显示相同的东西。它在我的桌面上 – Ashutosh 2010-11-10 22:43:11

+0

一旦你在变量中使用路径,你如何使用它?它试图使用相对于程序所在文件夹的路径吗?像“C:\ MyProgramFolder \ c:\ user \ abcd \ desktop \ read.txt”? – adam0101 2010-11-10 22:45:45

4

我只想用:

@"c:\user\abcd\desktop\read.txt" 

(注意,使用了@的)。另一个可能的问题是权限;该应用程序有访问用户acbd的桌面?你也可以看看:

Environment.GetFolderPath(System.Environment.SpecialFolder.DesktopDirectory) 

Environment.GetFolderPath(System.Environment.SpecialFolder.Desktop) 
+0

+1为获得特殊文件夹路径的更安全和更正确的方式。 – snarf 2010-11-10 22:34:09

+0

试过但没有工作仍然是相同的例外。 – Ashutosh 2010-11-10 22:36:34

+0

@ashutosh - 什么帐户正在运行代码? – 2010-11-10 23:53:21

0

我猜测,这些都是反斜杠。这是调试器显示某些字符的方式。换行符将显示为“\ r \ n”,选项卡显示为“\ t”,反斜杠显示为“\\”。字符串“a \ b \ c \ d”将在调试器中显示为“a \\ b \\ c \\ d”,因为这是您必须键入代码以获取实际字符串“a \ b \ d”光盘”。当调试器显示加倍的反斜杠时,每个\实际上是一个单独的。

0

调试器只显示文件的转义版本。我注意到你的一个路径包含字符串“user”,而另一个包含“users”是复数的问题?

+0

对不起,这是一个错字 – Ashutosh 2010-11-10 22:39:06