路徑

2010-07-23 44 views
11

我試圖去位於路徑

C:\Program Files (x86)\test software\myapp\demo.exe 

在VS調試器,我看到路徑作爲文件非法字符:

"\"C:\\\Program Files (x86)\\\test software\\\myapp\\\demo.exe\"" 

當我把它打印出來,我看到控制檯:

"C:\Program Files (x86)\test software\myapp\demo.exe" 

,但是當我嘗試類似

FileInfo fi = new FileInfo(PathMentionedAbove); 

我得到路徑中的非法字符。

出了什麼問題?該文件存在且路徑正確。這條道路上有什麼違法?

任何幫助,將不勝感激。

回答

16

你的路徑包括「開頭和結尾。刪除引號,它會沒事的。

的\」在你在VS調試器看到的開頭和結尾是什麼告訴我們引號是字面上的字符串。

6

該字符串被雙引號包圍。是的,這不是一個有效的角色。

你或許應該從源頭上解決它,但你可以帶他們出去有:

 path = path.Replace("\"", ""); 
+0

@ ke3pup請選中此項,答案,因爲它解決了你的問題。 – 2018-03-06 19:46:44

3

你似乎有開始和結束嵌入在字符串中的引號(")。這些不是必需的,並且是路徑中的非法字符。你如何初始化字符串的路徑?

從調試器可視化工具中可以看出,由於字符串以"\"開頭並以\""結尾,因此它顯示了引號是字符串的一部分,但不應該是。

你可以做兩兩件事 - 一個普通轉義字符串(使用\)或verbatim string literal(即用@開始):

string str = "C:\\Program Files (x86)\\test software\\myapp\\demo.exe"; 

或者:

string verbatim = @"C:\Program Files (x86)\test software\myapp\demo.exe"; 
0

我usualy將進入這樣的路徑....

FileInfo fi = new FileInfo(@"C:\Program Files (x86)\test software\myapp\demo.exe"); 

你註冊在字符串的開頭是@? ;-)

+0

我試過 FileInfo fi = new FileInfo(@Path); 但我仍然遇到同樣的問題。我不能做你說的話,因爲我從其他地方獲得路徑並將其存儲在一個字符串中。 – ke3pup 2010-07-23 07:11:18

7

試試這個:

string path = @"C:\Program Files (x86)\test software\myapp\demo.exe"; 
0

嘗試

「C:/ Program Files文件(86)/測試軟件/ MYAPP/DEMO.EXE」