- ベストアンサー
ディレクトリの監視と変更ファイル
ディレクトリを監視して、ファイルが作成された場合。 その作成されたファイルの名前や拡張子などを知りたいのですが何かよい方法があるでしょうか?今現在ではファイルが作成される前のディレクトリ内のファイルのリストを作っておいてそれと比較してリストにないものが新しいファイル、という風な方法を考えています。他に何かありましたら教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
FindFirstChangeNotification をトリガとして FindFirstFile, FindNextFile, FindClose を使ってファイル一覧を取得し GetFileAttributes でファイル属性(作成時間,変更時間)を調べればわかるのでは? C++なら CFileFind, CFile, CFileStatus あたりで…。
その他の回答 (2)
- SpiralGalaxy
- ベストアンサー率39% (649/1653)
回答No.2
Windowsでしょうか? もしそうなら FindFirstChangeNotification を使ってみてください。 指定したディレクトリでファイル作成、属性変更、etc 等が行われた場合 それを検知してなんらかの処理を行うようにすることが可能です。 詳細はMSDNで調べてください。
質問者
お礼
大事なことですよね、書き忘れててすいません。 WindowsのXPです。 FindFirstChangeNotification は、調べてみたらファイルの変更はわかるけれど、どのファイルが変更されたかはわからないみたいなのですがそのとおりでしょうか?
- tatsu99
- ベストアンサー率52% (391/751)
回答No.1
OSは何でしょうか。OSにより方法が異なるかと思いますので。
質問者
お礼
大事な書き忘れをしてすいません。 WindowsのXPです。
お礼
ありがとうございます。 自分が考えていたのでやっていたらただ名前を変えただけのファイルも引っかかってしまうところでした。 FindFirstChangeNotificationで書き込みが行われたら、という監視をして作成時間、アクセス時間(ファイルをドラッグ&ドロップすると更新されるようで)が最近のもの、もしくは前もってディレクトリ内の作成時間、アクセス時間の最大を調べておき比較して変更ファイルと決めようと考えていますが、どうでしょうか?前者のほうだと同時に複数のファイル移動、作成をするとわからなくなると思いまして