如何知道何时编辑文件
How to know when a file is edited?
有没有办法(或API)知道何时编辑文本文件(由程序或人)并执行特定操作?
例如:我想在编辑文件 c:\Users\john\free.txt 时显示一个消息框。
取决于你什么时候想知道它。
- 您的应用程序是否持续运行,您是否希望尽快看到任何更改?
- 您的应用程序是否是需要检查一次更改的简单命令行应用程序?
在第二种情况下,您可以检查文件的修改日期(如PoweRoy和Michal建议的那样)或使用哈希(如PoweRoy建议的那样)。
如果应用程序连续运行,则应使用 FindFirstChangeNotification 和 ReadDirectoryChanges 函数。 您可以在以下页面上阅读有关它的更多信息:
- http://msdn.microsoft.com/en-us/library/windows/desktop/aa364417(v=vs.85).aspx
- http://msdn.microsoft.com/en-us/library/windows/desktop/aa365465(v=vs.85).aspx.
最简单的:比较修改日期。但这可以纵。
或者对原始文件进行哈希处理,并将其与当前文件进行比较。
GetFileTime 应该会帮助你。
http://msdn.microsoft.com/en-us/library/ms724320%28v=vs.85%29.aspx
还有GetFileAttributesEx。
检查文件的上次修改日期时间。此方法检索与给定 CFile 对象实例或给定文件路径相关的状态信息。
BOOL GetStatus( CFileStatus&rStatus) 康斯特;静态布尔值 PASCAL GetStatus( LPCTSTR lpsz文件名, CFileStatus&rStatus);
参数r状态对将接收状态信息的用户提供的 CFileStatus 结构的引用。CFileStatus 结构具有以下字段:
CTime m_ctime 创建文件的日期和时间。
CTime m_mtime 上次修改文件的日期和时间。
CTime m_atime上次访问文件以进行读取的日期和时间。
ULONGLONG m_size DIR 命令报告的文件的逻辑大小(以字节为单位)。
BYTE m_attribute 文件的属性字节。
char m_szFullName[_MAX_PATH] Windows 字符集中的绝对文件名。
lpsz文件名Windows 字符集中的字符串,它是所需文件的路径。路径可以是相对路径或绝对路径,也可以包含网络路径名。
返回值如果成功获取指定文件的状态信息,则为 TRUE;否则,为假。PS:来自MSDN的信息
- 编辑文件中的文本
- UE4 - Visual Studio在我从编辑器添加新的c ++文件后无法打开任何源文件 - UBT_COMPILED
- 在编辑头文件时,VS Intellisense如何从stdafx.h中查找定义
- 读取目录中的多个文件以进行编辑和写入另一组文件
- 如何使用 c++ 实现并发文件/文本编辑?
- 当有 icqdesktop 错误时如何编辑制作文件 (制作: *** [所有] 错误 2) Ubuntu 18.04 6
- 在 Visual Studios 中关闭 rc 资源文件的编辑
- C++/RapidXML:编辑节点并写入新的 XML 文件没有更新的节点
- 从数据集 Blob 字段中打开和编辑文件
- Clang - 检测头文件何时完成
- 如何通过在运行时编辑文件来设置窗口属性
- C++类对象文件何时编译
- 如何在不覆盖其他数据的情况下编辑文件中的数据
- MFC - 编辑文件打开操作
- 在C++中搜索和编辑文件
- 如何知道何时编辑文件
- 使用cstdio就地编辑文件
- 如何在c++中读取和编辑文件txt
- 如何在c++中确定文件何时更新
- 是否可以判断C++文件何时是主源文件