StreamReader fr = new StreamReader("D:\\test\\" + item);
這是一個異常notsupported時正是我想做的事情。 Item是一個帶有文件名的字符串。洞串是這樣的C#爲什麼我得到我的文件路徑
"D:\\test\\01-Marriotts Island.mp3"
但他試圖生成StreamReader。 路徑有什麼問題?
StreamReader fr = new StreamReader("D:\\test\\" + item);
這是一個異常notsupported時正是我想做的事情。 Item是一個帶有文件名的字符串。洞串是這樣的C#爲什麼我得到我的文件路徑
"D:\\test\\01-Marriotts Island.mp3"
但他試圖生成StreamReader。 路徑有什麼問題?
StreamReader是專爲閱讀字符數據。如果您嘗試讀取二進制數據(例如mp3文件的內容),則應該使用BinaryReader。
更新:正如馬克指出的,你也可以使用Stream來讀取文件,這可能提供了一個比BinaryReader更容易操作的文件接口。另外,我建議在構建要訪問的文件的路徑時使用Path.Combine。
好點。我不確定我會使用'BinaryReader' - 只是'Stream' – 2009-09-20 21:12:30
有沒有更多的消息與它一起使用?對於信息,爲路徑結合起來,最簡單的方法是用Path.Combine
:
using(StreamReader fr = new StreamReader(Path.Combine(@"D:\Test", item))) {
// ...
}
(注還using
,以確保它被設置)
或更清晰依舊(IMO):
using(StreamReader fr = File.OpenText(Path.Combine(@"D:\Test", item))) {
// ...
}
(當然,正如其他地方已經提到的,StreamReader
可能不適合MP3)
諮詢MSDN documentation for StreamReader,我沒有看到NotSupportedException
列爲此API將引發的異常。然而,another similar constructor overload並列出它:
NotSupportedException
:路徑包括 爲 文件名,目錄名或卷 標籤不正確或無效的語法。
所以我用一個無效的卷標嘗試過自己,確實得到了NotSupportedException
:
StreamReader reader = new StreamReader("DD:\\file.txt");
// throws...
//
// Unhandled Exception: System.NotSupportedException: The given path's format is not supported.
所以我的猜測是有什麼不對您的路徑。
Markus,您是否設法解決您的問題?如果是這樣,結果是異常的原因?我問的原因是我只是想確保我的答案確實是準確的,並且不會誤導任何未來遇到它的人,例如,如果事實證明,這條道路本身並不完整。 – 2009-09-20 21:41:31
我現在用的方法File.ReadBinary – Markus 2009-09-21 08:15:44