• ベストアンサー

ディレクトリの監視と変更ファイル

ディレクトリを監視して、ファイルが作成された場合。 その作成されたファイルの名前や拡張子などを知りたいのですが何かよい方法があるでしょうか?今現在ではファイルが作成される前のディレクトリ内のファイルのリストを作っておいてそれと比較してリストにないものが新しいファイル、という風な方法を考えています。他に何かありましたら教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

FindFirstChangeNotification をトリガとして FindFirstFile, FindNextFile, FindClose を使ってファイル一覧を取得し GetFileAttributes でファイル属性(作成時間,変更時間)を調べればわかるのでは? C++なら CFileFind, CFile, CFileStatus あたりで…。

crimsongod
質問者

お礼

ありがとうございます。 自分が考えていたのでやっていたらただ名前を変えただけのファイルも引っかかってしまうところでした。 FindFirstChangeNotificationで書き込みが行われたら、という監視をして作成時間、アクセス時間(ファイルをドラッグ&ドロップすると更新されるようで)が最近のもの、もしくは前もってディレクトリ内の作成時間、アクセス時間の最大を調べておき比較して変更ファイルと決めようと考えていますが、どうでしょうか?前者のほうだと同時に複数のファイル移動、作成をするとわからなくなると思いまして

その他の回答 (2)

回答No.2

Windowsでしょうか? もしそうなら FindFirstChangeNotification を使ってみてください。 指定したディレクトリでファイル作成、属性変更、etc 等が行われた場合 それを検知してなんらかの処理を行うようにすることが可能です。 詳細はMSDNで調べてください。

crimsongod
質問者

お礼

大事なことですよね、書き忘れててすいません。 WindowsのXPです。 FindFirstChangeNotification は、調べてみたらファイルの変更はわかるけれど、どのファイルが変更されたかはわからないみたいなのですがそのとおりでしょうか?

  • tatsu99
  • ベストアンサー率52% (391/751)
回答No.1

OSは何でしょうか。OSにより方法が異なるかと思いますので。

crimsongod
質問者

お礼

大事な書き忘れをしてすいません。 WindowsのXPです。

関連するQ&A