首页| JavaScript| HTML/CSS| Matlab| PHP| Python| Java| C/C++/VC++| C#| ASP| 其他|
购买积分 购买会员 激活码充值

您现在的位置是:虫虫源码 > 其他 > 文件修改监控

文件修改监控

  • 资源大小:1.08 kB
  • 上传时间:2021-06-30
  • 下载次数:0次
  • 浏览次数:0次
  • 资源积分:1积分
  • 标      签: Windows开发 c 监控 文件 修改

资 源 简 介

ReadDirectoryChangesW 有同步和异步2种方式, 根据前面打开的文件夹对象句柄决定。  1. 异步方式,如果 CreateFile 指定了打开类型 FILE_FLAG_OVERLAPPED 就是异步方式,ReadDirectoryChangesW 调用的时候就需要指定 OVERLAPPED 参数.  接下来对文件夹I/O变化的响应判断有多种方式。  A通过不断的调用HasOverlappedIoCompleted函数(非阻塞,参数就是前面的OVERLAPPED 对象指针)的返回值来判断是否发生了 关注文件句柄的I/O操作。如果发生变化,再执行你的 switch(Buffer[0].Action) 操作过程。  B GetOverlappedResult 读取 OVERLAPPED 对象的结果。(阻塞)  C 完成端口 GetQueuedCompletionStatus (阻塞)。  其中阻塞方式,必须采用多线程的方式,否则你的主线程被阻塞的话,对话框就动不了了。非阻塞方式也可用多线程,结合hEvent对象来使用。  2.同步方式,如果CreateFile不指定FILE_FLAG_OVERLAPPED ,就是同步方式。  同步方式操作比较简单。lz的程序看来就是使用的同步方式。  在同步下,ReadDirectoryChangesW 将被阻塞,直到一个文件夹句柄的I/O操作到来,然后才能判断。所以lz的程序会死掉。  同步方式必须采用多线程,再创建一个线程,线程函数采用如下方式:  UINT ThreadProc(PVOID)  {     CreateFile();     while(1) // 如果只想监视一次文件的I/O变化,可不用while循环。     {   

文 件 列 表

文件监控方法.txt
VIP VIP
0.189454s