有没有办法(或 API)知道文本文件何时被编辑(由程序或人)并执行特定操作?
例如:我想在文件 c:\Users\john\free.txt 被编辑时显示一个 MessageBox。
取决于你什么时候想知道它。
在第二种情况下,您可以检查文件的修改日期(如 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) 常量;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;否则,错误。PS:资料来自MSDN