是否有办法(或API)知道文本文件的编辑时间(由程序或个人编辑)并执行特定操作?
例如:我想在编辑文件c:\ Users \ john \ free.txt时显示MessageBox。
答案 0 :(得分:5)
取决于你何时想知道它。
在第二种情况下,您可以检查文件的修改日期(如PoweRoy和Michal所建议)或使用哈希(如PoweRoy建议的那样)。
如果您的应用程序持续运行,则应使用FindFirstChangeNotification和ReadDirectoryChanges函数。您可以在以下页面上阅读更多相关信息:
答案 1 :(得分:1)
最简单:比较修改日期。但这可以被操纵。
或者对原始文件进行哈希处理并将其与当前文件进行比较。
答案 2 :(得分:0)
GetFileTime应该可以帮到你。
http://msdn.microsoft.com/en-us/library/ms724320%28v=vs.85%29.aspx
并且还有GetFileAttributesEx。
答案 3 :(得分:0)
检查文件的最后修改日期时间。 此方法检索与给定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的信息