前提・実現したいこと
日記ソフトを作ってます。
OpenFileDialogで開いたファイルをStreamReaderで読ませたいです。
ですが、次の場所でエラーが出てます。
発生している問題・エラーメッセージ
ハンドルされていない例外 System.IO.FileNotFoundException: 'ファイル 'C:\Users\user\source\repos\もどき日記2\もどき日記2\bin\Debug\{ofdpath}' が見つかりませんでした。 この例外は、最初にこの呼び出し履歴 [外部コード] もどき日記2.Form1.開くダイアログ() 場所: Form1.cs もどき日記2.Form1.開くToolStripMenuItem_Click(object, System.EventArgs) 場所: Form1.cs [外部コード] もどき日記2.Program.Main() 場所: Program.cs でスローされました
該当のソースコード
C#
1private void 開くダイアログ() 2 { 3 //OpenFileDialogクラスのインスタンスを作成 4 OpenFileDialog ofd = new OpenFileDialog(); 5 6 //はじめのファイル名を指定する 7 //はじめに「ファイル名」で表示される文字列を指定する 8 ofd.FileName = ""; 9 10 //はじめに表示されるフォルダを指定する 11 //指定しない(空の文字列)の時は、現在のディレクトリが表示される 12 ofd.InitialDirectory = @"C:\もどき日記ver.1\日記データフォルダ\"; 13 14 //[ファイルの種類]に表示される選択肢を指定する 15 //指定しないとすべてのファイルが表示される 16 //mddiはオリジナルの拡張子です。 17 ofd.Filter = "日記ファイルデータ(*.mddi)|*.mddi;*.mddi"; 18 19 //[ファイルの種類]ではじめに選択されるものを指定する 20 //2番目の「すべてのファイル」が選択されているようにする 21 ofd.FilterIndex = 2; 22 23 //タイトルを設定する 24 ofd.Title = "開くファイルを選択してください"; 25 26 //ダイアログボックスを閉じる前に現在のディレクトリを復元するようにする 27 ofd.RestoreDirectory = true; 28 29 //存在しないファイルの名前が指定されたとき警告を表示する 30 //デフォルトでTrueなので指定する必要はない 31 ofd.CheckFileExists = true; 32 33 //存在しないパスが指定されたとき警告を表示する 34 //デフォルトでTrueなので指定する必要はない 35 ofd.CheckPathExists = true; 36 37 //ダイアログを表示する 38 if (ofd.ShowDialog() == DialogResult.OK) 39 { 40 string ofdpath = ofd.FileName; 41 42 //次の文でエラーが出てます 43 StreamReader sr = new StreamReader(@"{ofdpath}"); 44 45 while (!sr.EndOfStream) 46 { 47 // CSVファイルの一行を読み込む 48 string line = sr.ReadLine(); 49 50 // 読み込んだ一行をカンマ毎に分けて配列に格納する 51 string[] values = line.Split(';'); 52 53 // 配列からリストに格納する 54 List<string> lists = new List<string>(); 55 lists.AddRange(values); 56 57 textBox1.Text = lists[0]; 58 textBox2.Text = lists[1]; 59 break; 60 } 61 } 62 }
補足情報(FW/ツールのバージョンなど)
Microsoft Visual Studio Community 2019
Version 16.8.3
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。