別のプロセスで使用中のファイルを開く|C#

テキストファイルの読み込み|C#の方法では、別のアプリケーションが開いているファイルをオープンしようとした際に、
型 ‘System.IO.IOException’ のハンドルされていない例外が mscorlib.dll で発生しました
追加情報:別のプロセスで使用されているため、プロセスはファイル ‘C:\test\20181226\sample.csv’ にアクセスできません。
といったIOExceptionが発生する場合があります。

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) {
            // 処理
        }
    }
}
このエントリーをはてなブックマークに追加
にほんブログ村 IT技術ブログへ

関連コンテンツ

スポンサードリンク

Comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です