2013-01-11 189 views
3

我已經試過這樣的事情如何追加字符串?

string path= Server.MapPath("~") + "color\"; 

但它拋出一個錯誤

「新線在不斷的」

有沒有辦法在一個字符串追加"\"

+1

什麼錯誤?只是說「發生錯誤」非常模糊。 –

+0

@DanielKelley:謝謝您的反饋我已更新錯誤詳細信息的問題 – Athul

+3

您可能想問您是否確實需要路徑字符串末尾的\。如果你養成了總是使用'Path的習慣。結合「,那麼你不必擔心路徑分隔符。 – juharr

回答

11

使用逐字字符串

string path= Server.MapPath("~") + @"color\"; 

\\

string path= Server.MapPath("~") + "color\\"; 

的問題是,\逃脫收盤",這就是爲什麼這不起作用:

string invalid = "color\"; // same as: "color; 

但是,你應該真的使用Path類和它的方法,如果你建立路徑爲codingbiz has already mentioned in his answer。它會使你的代碼更易讀且不易出錯

+0

這是一個很好的答案,但我相信最好的一個,如果@codingbiz的一個,因爲它使用了'Path'類。 –

+0

@MatíasFidemraizer:是的,一般使用'Path'類是很好的。然而,問題是「如何在字符串中追加\」,所以焦點集中在異常,爲什麼會發生以及如何防止它。請注意,它不是路徑特定的,'Path.Combine'不能防止這個異常。 –

+0

@TimSchmelter是的,這是最重要的 - 解決OP的問題。後來提出了替代方案。 – codingbiz

3

使用@,逐字字符串,

string path = Server.MapPath("~") + @"color\"; 

或兩倍的\

string path = Server.MapPath("~") + "color\\"; 
2

使用此

string path= Server.MapPath("~") + "color\\"; 

或者

string path= Server.MapPath("~") + @"color\"; 
2

與另一個逃脫。

string path= Server.MapPath("~") + "color\\"; 
2

在您的字符串中使用@ verbtaim;

string path= Server.MapPath("~") + @"color\"; 

或使用\\沒有verbtaim;

string path= Server.MapPath("~") + "color\\"; 

從MSDN檢出String literals

4

試試這個

string path = Path.Combine(Server.MapPath("~") + @"color\"); 

OR

string path = Path.Combine(Server.MapPath("~") + "color\\"); 

Path.Combine將確保路徑字符 「\」 插入其中缺少