質問者
C#2005でCSVファイル出力しようとしてるんですが・・・

質問
すべての返信
-
かさこさん、こんにちは。
かさこ さんからの引用 出力するCSVファイルが既にエクセルで開かれている場合プログラムがabortします。
出力するファイルが開かれているかどうか判定する方法ってあるんでしょうか?
例外処理くらいしか根本的に解決できる方法はありません。
Excel だけであれば、MainWindowTitle からある程度推測は可能ですが。
行き詰った時は、「なぜこのようなことで悩む必要があるのか?」 を考えてみましょう。
そもそも '既に存在しているファイルに出力する' というのがまずいのではないでしょうか?
親切なシステムなら、すでに存在しているならばリネームしてくれるものです。 -
こんにちは。
ちょっと気になったのですが、
もし、1つのCSVファイルを、
作成したC#のプログラムで、編集
↓
エクセルで編集
↓
作成したC#のプログラムで、編集
↓
以下略
のような感じで一貫性を持って更新していくのであれば
Excelで編集中の時は
UnauthorizedAccessException
をcatchして
ユーザに
「ほかのアプリケーションでファイルを開いているならば閉じてください」
というような警告を出し、
作成したC#のプログラムで編集中のときは同時にExcelで
開いて保存したりできないように、という部分も考慮した方がよいと思います。
また、ファイルの出力の部分はエラー処理も含めて
別クラスに追い出して、そちらに任せれば、構成がすっきりすると思います。