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を使用する必要があります。
更新: マークが指摘したように、ストリームを使用してファイルを読み取ることもできます。これにより、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.
だから私の推測では、あなたのパスに何か問題があります。