|
分類:[VB.NET/VB2005]
いつも参考にさせていただいております。
FileSystemWatcherを使った、監視プログラムを作っています。 この場合1回の更新処理で、変更イベントが複数回発生します。 (調査したのですが、今のところ有効な回避策はありませんでした、、)
実際に必要なのは、 @更新が始まったタイミング A更新が終了したタイミング 以上の2つだけです。
そこで、変更イベントが発生したタイミングでタイマーを起動し、 変更対象のファイルに対しオープン処理を定期的に実行します。 ファイルパスは「e.FullPath」で取得します。※e → EventArgs
オープンが失敗したら、まだ更新処理中 オープンが成功したら、更新処理終了
と判断することにしました。
通常のファイルであれば、(今のところ)この方法で問題はありませんでした。
しかし、新規にフォルダを作成した場合、例外となります。 「フォルダ」に対してオープンしようとしているのですから当然なのですが、、
これを回避するため、対象ファイルが「フォルダ」なのか、それ以外のものであるのかを判別するため、 「ファイルの種類」を取得したいと考えています。
Web等で検索してみたのですが、方法が分かりません。 また、拡張子を見ることも考えたのですが、拡張子が無い=フォルダ とも限りませんよね。
自分でも調査を進めますが、どなたかご存知の方がいましたら、ご教授願います。 宜しくお願いします。
■開発環境:WindowsXP ■言語:VB.NET 2003
|