C#、visualstudioで開発しています。
下記のメソッドで指定したファイルを読み込み、配列を返すような処理をしています。
C#
1public string[] ReturnSetting(string path) { 2 //読み込むファイルパス 3 string filePath = ConfigurationManager.AppSettings["SensorPath"] + path; 4 //読み込み処理 5 using (FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) 6 using (StreamReader sr = new StreamReader(fs)) { 7 //指定されたcsvファイルを配列に格納して返す 8 string[] cols = sr.ReadLine().Split(','); 9 return cols; 10 } 11 }
引数の"path"でcsvファイルを指定します。
csvファイルは19個あり"file_1.csv"のような具合で引数を渡しています。
あるイベントでこの処理を19回(引数1~19まで)行います。
ここで3回目くらいの時点で「NullReferenceException」が発生します。デバッグで1行ずつ実行すると
"string[] cols = sr.ReadLine().Split(',');"
ここの処理で例外が発生しているようです。
また、FileStream、StreamReaderともに値は入っていてました。
不思議なことに読み込むファイルをPC内ではなく、ファイルサーバー上に置いて実行するとエラーが発生しません。
ファイルパスの指定が間違っていると思い何回も確認しましたが、間違っている様子はありません。
なぜ1,2回目は成功するのでしょうか?また、なぜファイルサーバー上だと成功するのでしょうか?
回答3件
あなたの回答
tips
プレビュー