加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

C++监控文件是否发生变化(源码,vs2008下可运行)

(2012-07-26 07:26:29)
标签:

杂谈

分类: CPlusPlus基础

#include "stdafx.h"

#include <Windows.h>


int _tmain(int argc, _TCHAR* argv[])
{
    HANDLE hEvent;//监控句柄
    char*  path[MAX_PATH+1] ;//监控目录
    GetCurrentDirectory(MAX_PATH,(LPWSTR)path);
    hEvent = FindFirstChangeNotification((LPCWSTR)path,TRUE,FILE_NOTIFY_CHANGE_FILE_NAME|  //查看指定目录下任何文件名的改变
        FILE_NOTIFY_CHANGE_DIR_NAME|   //查看指定目录下任何目录名的改变
        FILE_NOTIFY_CHANGE_SIZE|       //查看指定文件大小的改变
        FILE_NOTIFY_CHANGE_ATTRIBUTES);//查看指定目录下文件属性的改变
    if (hEvent == INVALID_HANDLE_VALUE)
    {
        ExitProcess(GetLastError());//获取错误
        return 0 ;
    }

    while (TRUE)//循环监控
    {
        DWORD nobj;
        nobj= WaitForSingleObject(hEvent,INFINITE);//等待,文件夹任何动作,都返回0,顾不能知道具体动作和具体哪个文件发生了变化      
        if (nobj)
        {
            ;
        }
        printf("文件发生了变化\r\n");


        //继续监控
        if(FALSE==FindNextChangeNotification(hEvent))
        {
            ExitProcess(GetLastError());
            return 0;
        }
    }

 return 0;
}

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有