2016-07-20 246 views
0

我最終發現我的代碼存在問題。File.ReadAllText()導致錯誤 - 路徑中的非法字符

我的代碼在以下幾點中斷:String vehicle = File.ReadAllText(result);錯誤消息 - 路徑中的非法字符。

不知道如何解決這個任何幫助非常讚賞,下面的完整代碼;

//Get Response 
     var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse(); 
     using (var streamReader = new StreamReader(httpResponse.GetResponseStream())) 
     { 
      //Here you got the JSON as string: 
      var result = streamReader.ReadToEnd(); 
      **String vehicle = File.ReadAllText(result);** 

      // Write the text to a new file named "Response.json". 
      var fileName = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "Respone.json"); 
      File.WriteAllText(fileName, result); 
     } 
    } 
+1

錯誤很明顯 - 在文件名的路徑中有非法字符。你在代碼中的評論表明你得到了一個JSON字符串,所以你可能想**解析** JSON來獲得文件路徑。 – Tim

+0

和'fileName'的最終值是什麼?你期望的是什麼? –

+1

你可以在'streamReader.ReadToEnd();'調用之後發佈'result'的值嗎? – Tim

回答

0

這就是原因File.ReadAllText()節選要讀取的文件路徑,而不是你從streamReader.ReadToEnd()

得到該文件內容如下您的代碼行看起來是多餘的我,因爲var result = streamReader.ReadToEnd();反正要得到你的內容。

String vehicle = File.ReadAllText(result); 
+0

診斷很可能是正確的,但'var result'是一個JSON字符串(根據代碼中的OP註釋),因此他們很可能需要首先解析JSON以獲取文件路徑值。 – Tim

+0

@Tim,可能是但不能從上述評論推斷*//在這裏,你得到了JSON作爲字符串*。他正在從webrequest獲取內容......你怎麼能說返回是一個文件路徑? – Rahul

+0

不要挑剔(只是想讓一個好的答案更好,更有用)。即使他們正在讀取* .json文件,我也希望結果仍然是一串JSON,在這種情況下仍然需要解析。如果OP可以發佈'result'的內容,我們將能夠更好地幫助他。 – Tim