StreamReader fr = new StreamReader("D:\\test\\" + item);
这就是我想做的。Item 是一个带有文件名的字符串。孔弦是这样的
"D:\\test\\01-Marriotts Island.mp3"
在他尝试生成 StreamReader 之前。路径有什么问题?
StreamReader fr = new StreamReader("D:\\test\\" + item);
这就是我想做的。Item 是一个带有文件名的字符串。孔弦是这样的
"D:\\test\\01-Marriotts Island.mp3"
在他尝试生成 StreamReader 之前。路径有什么问题?
StreamReader 是为读取字符数据而设计的。如果您尝试读取二进制数据(例如 mp3 文件的内容),则应使用BinaryReader 。
更新:正如 Marc 指出的那样,您还可以使用Stream来读取文件,这可能会提供比 BinaryReader 更易于使用的界面来操作文件。此外,我支持他在构建要访问的文件的路径时 使用Path.Combine的建议。
有没有更多的信息呢?有关信息,组合路径的最简单方法是Path.Combine
:
using(StreamReader fr = new StreamReader(Path.Combine(@"D:\Test", item))) {
// ...
}
(还要注意using
以确保它被处理)
或更清楚(IMO):
using(StreamReader fr = File.OpenText(Path.Combine(@"D:\Test", item))) {
// ...
}
(当然,正如在别处提到的,aStreamReader
可能不适合 mp3)
查阅 StreamReader的MSDN 文档,我不NotSupportedException
认为该 API 将抛出异常。但是,另一个类似的构造函数重载确实列出了它:
NotSupportedException
: 路径包含文件名、目录名或卷标的不正确或无效语法。
所以我自己尝试了一个无效的卷标,确实得到了NotSupportedException
:
StreamReader reader = new StreamReader("DD:\\file.txt");
// throws...
//
// Unhandled Exception: System.NotSupportedException: The given path's format is not supported.
所以我的猜测是你的路径有问题。