C#のStreamReaderに関する質問です Q1)下記のコードでファイルが無い旨のエラーが発生した場合の 対応方法をお教え頂けますと大変有難いです

補足

Q2)下記のエラー処理でOKでしょうか? try { StreamReader sr = new StreamReader(@"c:\WK_music\music_data\L3118A41x.csv"); sr.Close(); } catch (FileNotFoundException e) { } // 旨くオープン出来た場合、末尾まで読み込みを繰り返す while (!sr.EndOfStream) { ....... ....... 以上、宜しくお願いします。 }

C言語関連85閲覧xmlns="http://www.w3.org/2000/svg">25

ベストアンサー

0

お世話になります。 try, catchで済まsていますが、finallyを書く必要はありませんか? 注)finallyの使い方が不明につき質問しています。 以上、宜しくお願いします。

ThanksImg質問者からのお礼コメント

毎度お世話になります。 丁寧な回答有難う御座いました。 感謝!!!!

お礼日時:6/27 11:16

その他の回答(2件)

0

私ならそもそも開く前にFile.Existでファイルの存在確認をしてファイルが無ければ読み込み処理させないようにします。 例外発生の原因が未然に防げるならそっちの方を潰します。

0

絶対パスでエラーとなる場合、相対パスで指定することで解決する可能性があります まずはFileStreamクラスでディレクトリを指定せずにファイルを一個作成します using System.IO FileStream file=new FileStream(“ファイル名”,FileMode.Create,FileAccess.ReadWrite); そしてこの作成したファイルがどのフォルダに保存されているかを確認します この保存場所が、相対パスを記述する際の基底値、すなはち開始点となります この保存場所から見て、指定のファイルがあるフォルダまでのルートを示す記述が相対パスです 「..\」と書くことで開始点のフォルダから見て一つ上の階層のフォルダへ移動できます 目的のファイルが保存されているフォルダへアクセスできる階層まで遡り、そこから絶対パスと同様にフォルダ名で階層を下ることでアクセスができます 末尾でファイル名の指定を忘れないようにしましょう