別のプロセスで使用中のファイルを開く|C#
テキストファイルの読み込み|C#
上記の記事方法では、別のアプリケーションが開いているファイルをオープンしようとした際に、
型 'System.IO.IOException' のハンドルされていない例外が mscorlib.dll で発生しました
追加情報:別のプロセスで使用されているため、プロセスはファイル 'C:\test\20181226\sample.csv' にアクセスできません。
追加情報:別のプロセスで使用されているため、プロセスはファイル 'C:\test\20181226\sample.csv' にアクセスできません。
といったIOExceptionが発生する場合があります。
これを回避するためには、FileShare.ReadWrite
を指定したFileStream
クラスを生成します。
生成したFileStream
をコンストラクタに指定したStreamReader
でアクセスすれば例外発生なしにファイルを読み込むことができます。
using (FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) {
using (StreamReader reader = new StreamReader(fs)) {
string line;
while ((line = reader.ReadLine()) != null) {
// 処理
}
}
}