Windows上でのファイル監視に関する質問です。http://q.hatena.ne.jp/1147921286でのご回答に対する、追加質問です。


.NetにてFileSystemWatcherを使えば、ファイルの更新などの操作を監視できることが分かりました。実際に試してみてOKでした。しかし、単純なファイルのオープン・クローズに関しては、捕捉してくれないようです。そこで、以下の情報を得ることのできる手段をお尋ねいたします。

  ・特定のフォルダ内の、特定の拡張子のファイルを対象に、
  ・ファイルのオープンとクローズの情報を収集したい
  ・編集や更新ナシの場合も、収集できるようにしたい
  ・収集したい情報は、ファイル名と時刻です

WinXPで動作可能なソースに関する情報を求めています。ズバリ的な情報には、100ptをお送りします。

以上、よろしくお願いいたします。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2006/07/06 17:16:26
  • 終了:2006/07/13 17:20:02

回答(2件)

id:kurukuru-neko No.1

kurukuru-neko回答回数1844ベストアンサー獲得回数1552006/07/06 17:52:34

ポイント35pt

ウイルスのリアルタイムスキャンの機能だと

思いますが。 

FileMonを使えばモニターは出来ます。

http://sysinternals.com/Utilities/Filemon.html

オープン・クローズ普通のAPIでは無理です。

フィルタードライバのようなドライバを作れば

なんとかなるかもしれません。

オープン・クローズを追跡したいのであれば

監査ログを有効にしてプログラムから読むの方法が

システム負荷がかからず且つ、記録も残りアプリ上

一番簡単と思います。

監査目的であればなおさら、何時みた、成功したのか

失敗したのかも含めて記録したいのであれれば

監査ログを使う方法がお勧めです。

http://forums.belution.com/ja/vc/000/306/68.shtml

ファイル監視ツール(for Windows 2000/2003)

http://www.fearoot.com/tools001.html

id:Mugicha2004

SysinternalsのFileMonは、私も試用したことがあります。全機能は必要ないのですが、私の求める機能は十分に含まれていました。商用化のためソースが非公開(メールで相談?)とのことで、残念でした。大いに参考になりそうだったのですが...

標準的なAPIでは難しいとのこと、了解です。ファイルシステムに対するシステムコール的なオープン/クローズを直接に捕捉する機能は、提供されていないのでしょうね。プログラミングは詳しくないのですが、APIやOSによって覆われている階層なのかな...と思っています。

低レベルな層を直に扱うようなコードで構いませんので、サンプルソースがあると幸いです。トンチンカン的な質問だと思いますが、いましばらく続行させてください。よろしくお願いいたします。

2006/07/07 09:05:36
id:ElekiBrain No.2

ElekiBrain回答回数255ベストアンサー獲得回数152006/07/07 01:57:37

ポイント35pt

以下ではだめでしょうか?


http://homepage3.nifty.com/midori_no_bike/CS/filesys.html


「ファイルの拡張子を取得」というカテゴリです。

(他のカテゴリと組み合わせれば可能? 

すいません、オブジェクト指向プログラミングはJavascript

しか知りませんので、

はっきりとした回答にはならないかもしれません)

id:Mugicha2004

すみません、ざっと目を通しただけですが、単純なファイルのオープンクローズの操作(編集や更新はナシ)に対しては、監視することはできないようです。

2006/07/07 09:07:14

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません