別のプロセスで使用中のファイルを開く|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技術ブログへ

スポンサードリンク

関連コンテンツ

コメント

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