请问:怎样监控一个文件夹的变化?

「已注销」 2016-01-11 09:30:22
如题:我想监控一个指定文件夹中是否有新建文件或文件夹,并读取其数据,并能确保每次不重复读取,实时性要求较强。
...全文
295 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
6楼的可能是使用方法不完善吧,这里有例子:https://msdn.microsoft.com/en-us/library/windows/desktop/aa365261%28v=vs.85%29.aspx
llsj0522 2016-02-22
  • 打赏
  • 举报
回复
笨办法两边都建立队列,循环对比; 监控文件夹需要时建立临时队列,读取端建立后每读取一个写一个,然后需要时对比; 或是将新文件或文件夹的建立时间精确到毫秒,读取时按时间从最后向前读取,若是读取到与上一次读取时间相同的文件,就不再读取;
zzbinfo 2016-02-15
  • 打赏
  • 举报
回复
我之前有3楼的这几个函数试过,会严重拖慢系统的反应时间,最后只能通过其他办法实现了。
laohuxunshan 2016-02-14
  • 打赏
  • 举报
回复
记得好像是使用钩子函数
wryyu 2016-01-27
  • 打赏
  • 举报
回复
以前在计时器上加了这些,可以参考

            TSearchRec rc;
            AnsiString  m_sDataPath = "D:\\";
            FindFirst(m_sDataPath+"*.txt",faAnyFile,rc);
            do
            {
                AnsiString sActualFileName = rc.Name;
                if(sActualFileName.IsEmpty()==false && sActualFileName != "." && sActualFileName != "..")
                {
                    //读取文件
                }
            }while(FindNext(rc) == 0);
            FindClose(rc);
  • 打赏
  • 举报
回复
FindFirstChangeNotification WaitForSingleObject FindNextChangeNotification FindCloseChangeNotification
柯本 2016-01-11
  • 打赏
  • 举报
回复
这个N年前就想做,但这个普通的DSK中没有,需要MS的文件系统SDK(具体名字我忘了),但文件系统SDK微软是不公开的,需要购买,所以就放弃了(目前商用的软件中也没有见过做到)
老顽童 2016-01-11
  • 打赏
  • 举报
回复
Net有这样的类,不知道Win32API有没有

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧