using (StreamReader sr = new StreamReader("gold.txt"))
{
text.Text = sr.ReadToEnd();
}
なぜこのエラーが発生するのですか?テキストファイルを作成し、gold.txtを読み取るための新しいStreamReaderを作成しようとしました。
using (StreamReader sr = new StreamReader("gold.txt"))
{
text.Text = sr.ReadToEnd();
}
なぜこのエラーが発生するのですか?テキストファイルを作成し、gold.txtを読み取るための新しいStreamReaderを作成しようとしました。
StreamReader
非修飾パスをパラメーターとして指定すると、アプリケーションの作業ディレクトリでファイルが検索されます。ファイルがそこにない場合は、次のように完全修飾パスを指定することをお勧めします。
StreamReader sr = new StreamReader(@"C:\Path\To\gold.txt")
Visual Studioのプロジェクトに「gold.txt」がある場合は、[出力ディレクトリにコピー]プロパティが[新しい場合はコピー]または[常にコピー]に設定されていることを確認してください。
お役に立てれば。私はこの点で何度も何度も失敗しました:P
また、読む前にFile.Exists( "gold.txt")かどうかを確認することをお勧めします。また、ファイルを操作していることがより明確になると思うので、File.OpenTextなどを使用する傾向があります。
Close();を忘れないでください。
このエラーが発生する理由は、StreamReaderに渡したパスに基づいてシステムがファイルを見つけることができないためです。これはおそらく、ファイルがアプリケーションがデフォルトで探しているディレクトリにないためです。
すでに提案されているように、フルパスを使用するか、ファイルを正しい場所に配置すると、短期的に問題を解決できるはずです。ただし、ある時点で、次のようにファイルを見つけるようにユーザーに依頼することをお勧めします。
OpenFileDialog openFileDialog = new OpenFileDialog();
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
string filePath = openFileDialog.FileName;
using (StreamReader sr = new StreamReader(filePath))
{
text.Text = sr.ReadToEnd();
}
}