テキスト ファイルが (プログラムまたは人によって) いつ編集されたかを知り、特定のアクションを実行する方法 (または API) はありますか?
例: ファイル c:\Users\john\free.txt が編集されたときに MessageBox を表示したい。
いつ正確に知りたいかによって異なります。
2 番目のケースでは、ファイルの変更日を確認するか (PoweRoy と Michal が提案)、ハッシュを使用できます (PoweRoy が提案)。
アプリケーションが継続的に実行されている場合は、FindFirstChangeNotification および ReadDirectoryChanges 関数を使用する必要があります。詳細については、次のページを参照してください。
最も簡単: 変更日を比較します。しかし、これは操作できます。
または、元のファイルのハッシュを作成し、現在のファイルと比較します。
GetFileTime が役立ちます。
http://msdn.microsoft.com/en-us/library/ms724320%28v=vs.85%29.aspx
GetFileAttributesEx もあります。
ファイルの最終変更日時を確認します。このメソッドは、特定の CFile オブジェクト インスタンスまたは特定のファイル パスに関連するステータス情報を取得します。
BOOL GetStatus( CFileStatus& rStatus ) const; static BOOL PASCAL GetStatus( LPCTSTR lpszFileName, CFileStatus& rStatus );
パラメータ rStatus ステータス情報を受け取るユーザー指定の CFileStatus 構造体への参照。CFileStatus 構造体には次のフィールドがあります。
CTime m_ctime ファイルが作成された日時。
CTime m_mtime ファイルが最後に変更された日時。
CTime m_atime ファイルが読み取りのために最後にアクセスされた日付と時刻。
ULONGLONG m_size DIR コマンドによって報告されるファイルの論理サイズ (バイト単位)。
BYTE m_attribute ファイルの属性バイト。
char m_szFullName[_MAX_PATH] Windows 文字セットの絶対ファイル名。
lpszFileName 目的のファイルへのパスである Windows 文字セットの文字列。パスは相対パスまたは絶対パスにするか、ネットワーク パス名を含めることができます。
戻り値 指定されたファイルのステータス情報が正常に取得された場合は TRUE。それ以外の場合は FALSE。PS:MSDN からの情報