WinCE的一个工作例子void FileInfoHelper::WatchFileChanges( TCHAR *ptcFileBaseDir, TCHAR *ptcFileName ){static int iCount = 0;DWORD dwWaitStatus; HANDLE dwChangeHandles; if( ! ptcFileBaseDir || ! ptcFileName ) return;wstring wszFileNameToWatch = ptcFileName;dwChangeHandles = FindFirstChangeNotification(

ptcFileBaseDir,

FALSE,

FILE_NOTIFY_CHANGE_FILE_NAME |

FILE_NOTIFY_CHANGE_DIR_NAME |

FILE_NOTIFY_CHANGE_ATTRIBUTES |

FILE_NOTIFY_CHANGE_SIZE |

FILE_NOTIFY_CHANGE_LAST_WRITE |

FILE_NOTIFY_CHANGE_LAST_ACCESS |

FILE_NOTIFY_CHANGE_CREATION |

FILE_NOTIFY_CHANGE_SECURITY |

FILE_NOTIFY_CHANGE_CEGETINFO    );if (dwChangeHandles == INVALID_HANDLE_VALUE) {

printf("\n ERROR: FindFirstChangeNotification function failed [%d].\n", GetLastError());

return;}while (TRUE) {

// Wait for notification.

printf("\n\n[%d] Waiting for notification...\n", iCount);

iCount++;

dwWaitStatus = WaitForSingleObject(dwChangeHandles, INFINITE);

switch (dwWaitStatus)

{

case WAIT_OBJECT_0:

printf( "Change detected\n" );

DWORD iBytesReturned, iBytesAvaible;

if( CeGetFileNotificationInfo( dwChangeHandles, 0, NULL, 0, &iBytesReturned, &iBytesAvaible) != 0 )

{

std::vector vecBuffer( iBytesAvaible );

if( CeGetFileNotificationInfo( dwChangeHandles, 0, &vecBuffer.front(), vecBuffer.size(), &iBytesReturned, &iBytesAvaible) != 0 ) {

BYTE* p_bCurrent = &vecBuffer.front();

PFILE_NOTIFY_INFORMATION info = NULL;

do {

info = reinterpret_cast( p_bCurrent );

p_bCurrent += info->NextEntryOffset;

if( wszFileNameToWatch.compare( info->FileName ) == 0 )

{

wcout <FileName <Action;

switch(info->Action) {

case FILE_ACTION_ADDED:

break;

case FILE_ACTION_MODIFIED:

break;

case FILE_ACTION_REMOVED:

break;

case FILE_ACTION_RENAMED_NEW_NAME:

break;

case FILE_ACTION_RENAMED_OLD_NAME:

break;

}

}

}while (info->NextEntryOffset != 0);

}

}

if ( FindNextChangeNotification( dwChangeHandles ) == FALSE )

{

printf("\n ERROR: FindNextChangeNotification function failed [%d].\n", GetLastError());

return;

}

break;

case WAIT_TIMEOUT:

printf("\nNo changes in the timeout period.\n");

break;

default:

printf("\n ERROR: Unhandled dwWaitStatus [%d].\n", GetLastError());

return;

break;

}}FindCloseChangeNotification( dwChangeHandles );}

linux c 监控文件内容改变,如何让程序监视C ++中的文件修改?相关推荐

  1. Linux 文件管理-文件内容-读取工具-【cattac】连接多个文件并打印到标准输出

    cat === 连接多个文件并打印到标准输出. 概要 cat [OPTION]... [FILE]... 主要用途 显示文件内容,如果没有文件或文件为-则读取标准输入. 将多个文件的内容进行连接并打印 ...

  2. linux下最简单多线程单文件socks5代理proxy服务器程序(仅一个c文件,带详细注解)

    2020.9.11 网上看的都比较复杂,GITHUB找了一个多线程的相对简单的MicroSocks项目,花了几周时间(没办法,菜鸟一个)改了一下,改成单文件,测试OK. /* wxl_socks5_p ...

  3. C语言:编写程序,打开文本文件stu.txt,读出文件内容,将其中的字符‘s’删除,将修改后的内容存到student.txt文件中。

    /*C语言:编写程序,打开文本文件stu.txt,读出文件内容,将其中的字符's'删除,将修改后的内容存到student.txt文件中.*/ #include <stdio.h> void ...

  4. 【.net core 通过NPOI库将Excel文件内容分类输出到不同的Excel中】

    前言 由于在文章[.net core 通过miniexcel库将Excel文件内容分类输出到不同的Excel中]中实现的Excel内容分类不能够保留原来的文件头格式,所以使用NPOI进行优化.NPOI ...

  5. java 判断ftp文件是否存在_java如何检验ftp服务器中指定文件是否存在

    详细内容 项目工作中,需要检验ftp服务器中指定文件是否存在,在网上查阅了相关资料,可以通过ftpClient类进行实现. 免费学习视频教程分享:java课程 具体实现代码:import org.ap ...

  6. 知道文件扩展名,如何获得在系统中该文件类型的图标

    -----------------------   //  FAQ整理:ccrun(老妖)   //  2005.11.30   ----------------------- 请教:知道文件扩展名, ...

  7. 上传文件计算机传输的,如何将手机微信中的文件传输到计算机

    2. 选择此选项可在手机的微信客户端中进行扫描,然后将扫描框与网页上的QR码对齐. 3. 扫描成功后,在手机上单击"确认",登录微信网络版本. 4. 之后,您将跳转到网页上的微信界 ...

  8. php批量替换文件内容,写了个遍历目录、批量替换文件内容的类

    之前有需要,就写了这个类. 功能: 1 遍历目录下的所有文件(可指定后缀名) 2 批量替换文件内容(正则.字符串) 3 批量替换文件后缀名 4 批量替换文件编码 使用例: $dirExplorer = ...

  9. linux解压exe文件,在Deepin V20系统下解压Windows中.exe文件的方法

    其实在Linux系统下解压Windows中.exe文件非常的简单,如果使用的是Ubuntu系统,只需双击.exe文件,然后系统自带的解压软件就可以查看到.exe文件里面的内容,然而,如果是在Deepi ...

最新文章

  1. 开始整SWF文字高亮显示——第一步:解析PDFToFlex源文件(修改补充版)
  2. 主成分分析 图像处理 matlab,matlab信号处理与主成分分析法,毕业设计求助
  3. 【USACO Mar08】 奶牛跑步 A-star k短路
  4. 华为交换机同步linux时间服务器,华为s5720s系列交换机同步时间
  5. android-6.0不支持FloatMath.sqrt(x * x + y * y)
  6. 小孔成像总结_初中物理解题技巧+方法总结,初二初三都要看看!
  7. Cloud 已死,本地部署万岁!
  8. 安卓开发之刮刮乐实例教程
  9. 6.Nginx 的 Rewrite 规则
  10. 华为平板解锁工具_它已不再是个娱乐工具 华为平板M6升级版:MatePad 10.8上手图赏...
  11. 三菱FX5U,机床X轴Y轴工作台定位控制程序!使用三菱J4-A系列伺服驱动器绝对位置系统,程序大小27000多步
  12. 高手需要具备的思维模型
  13. 彼得德鲁克管理理念摘写
  14. echarts瀑布图_请问echarts中有没有瀑布图+折线图的使用方法?
  15. 普通人如何正确学习人工智能?
  16. 解决电脑本地网络连接显示红叉又可上网问题
  17. 二分查找python实现代码_二分查找——Python实现
  18. 刺激战场android闪退,刺激战场闪退怎么办
  19. linux下解压命令大全
  20. html阅读小红书,小红书排名怎么刷:以下HTML5页面大纲开始!

热门文章

  1. github下载慢,轻松提速教程
  2. Python:模拟登录、点击和执行 JavaScript 语句案例
  3. Python 位运算符
  4. java中标识符,关键字,数据类型
  5. 7号团队:团队任务3-每日任务(2018-11-26)
  6. 2022-2028年中国液体燃料行业市场研究及前瞻分析报告
  7. 机器学习入门(11)— 反向传播的加法节点、乘法节点、加法层代码实现、乘法层代码实现
  8. [LeetCode] 130. Surrounded Regions Java
  9. python+opencv选出视频中一帧再利用鼠标回调实现图像上画矩形框
  10. 分享一个小工具:Excel表高速转换成JSON字符串