2012-06-12 86 views
2

我正在開發一個控制檯應用程序,用於解析xml文件並生成一個txt文件。我創建存儲新的文件的文件路徑,但是這是有空格,如:帶空格的路徑無法使用File.CreateText(filePath)創建文件c#

string filePath = "C:\\Program Files\\my path\\fileName.txt" 

,但我創建使用路徑:

string filePath = Path.Combine(temp, "fileName.txt"); 

而溫度是前路徑。當我打電話:

StreamWriter sw = File.CreateText(filePath); 

是給這個異常: 找不到路徑的一部分:文件路徑

有人可以幫助我這個問題?我如何用這個路徑創建文件?

+0

我懷疑它的空白導致了問題,但你可以用'filePath.Trim()'去除串 – dtsg

+0

如何在所有空間你得到文件路徑?由於「無法識別的轉義序列」而不能編譯 – Damith

+0

什麼是temp?它是否也包含文件名?從你的描述來看,這聽起來像是你在路徑末尾複製了文件名。在你調用CreateText方法之前,你能打印出filePath的值嗎? –

回答

2

有看起來像一個問題,你的文件路徑

嘗試@"C:\Program Files\my path\fileName.txt"

注意:您已經更新了在評論中提到的更改你的問題。

您的問題可能是'我的路徑'不存在,因爲當以管理員身份運行時,此控制檯應用程序可以正常工作。當沒有運行時,我得到一個UnathorizedAccessException

class Program 
{ 
    static void Main(string[] args) 
    { 
     try 
     { 
      var temp = @"C:\\Program Files\\my path\\"; 
      string filePath = Path.Combine(temp, "fileName.txt"); 
      StreamWriter sw = File.CreateText(filePath); 
      Console.WriteLine("I got here"); 
     } 
     catch (Exception) 
     { 
      Console.WriteLine("I didn't"); 
      // 
     } 

    } 
} 
+0

我已經嘗試了您的解決方案,但它不起作用......出現相同的異常消息。我認爲我的問題是我使用以下方法創建路徑:filePath = Path.Combine(temp,「filename.txt」);那麼我寫sw = File.CreateText(@filePath),它不工作,任何想法? – mafalda

+0

用您遇到問題的代碼更新您的問題。 –

+0

他們的方式是什麼價值的溫度? –

0

您在字符串中有單個反斜槓。讓他們雙反斜線:

string filePath = "C:\\Program Files\\my path\\fileName.txt" 
+0

您需要使用代碼塊否則\\將顯示爲\。我相信這不值得投票 – Habib

+1

呃?不明白你的意思。 –

+1

你的答案被低估了,可能是因爲它沒有格式化。由於您在字符串filePath行的回答中未使用代碼塊,因此字符串中的雙反斜槓顯示爲單個反斜槓。我編輯了你的答案,以便它可以反映出雙反斜槓 – Habib

1

使用此:

string filePath = @"C:\Program Files\my path\fileName.txt" 
+0

驅動器號後面會出現2個斜槓 –

+0

快速測試之後,驅動器號後面顯示雙斜槓正常。如果答案被編輯,我將刪除這個不滿意的結果。 –

+0

我認爲我的原始答案是正確的,但是被Damith編輯錯誤 – uowzd01

相關問題