解决往监控目录拖拽文件夹无法监控到的问题

在项目中一个应用场景是监控一个目录变化,但从监控目录外部拖拽一个文件夹进来,拖拽进来的文件夹里的文件无法监控到,通过查看资料,发现是一个参数的设置

#include <iostream>
#include "DirectoryChanges.h"
#include "MyDirectoryChangeHandler.h"

int main()
{
     wcout.imbue(locale("CHS"));

    CDirectoryChangeWatcher watcher;
    CMyDirectoryChangeHandler MyChangeHandler;
    watcher.WatchDirectory(_T("C:\\Users\\Administrator\\Desktop\\111"),
        FILE_NOTIFY_CHANGE_FILE_NAME|FILE_NOTIFY_CHANGE_DIR_NAME,
        &MyChangeHandler,
        TRUE, //<-- watch sub directories?
        NULL, //<-- Include Filter
        NULL);//<-- Exclude Filter

    getchar();
    return 0;
}
 FILE_NOTIFY_CHANGE_FILE_NAME :当监控目录下有文件变化得到通知
 FILE_NOTIFY_CHANGE_DIR_NAME : 当监控目录下有文件夹变化得到通知

之前就是少设置了FILE_NOTIFY_CHANGE_DIR_NAME这个属性,导致监控目录下拖拽文件夹无法得到通知,现在设置这个属性就可以得到通知了!!!
 点击下载demo
时间: 2024-11-05 02:41:06

解决往监控目录拖拽文件夹无法监控到的问题的相关文章

A1.xcode三种拖拽文件夹的方式

1.copy,是指文件不在项目的目录下面,例如项目在桌面上,文件在 Download 下,你 copy 就会被复制到项目里面.如果文件原本就在项目里面,则不执行任何操作.这里不管它,重点是 下面的单选框. 2.create  groups for any added folders 添加文件 将所有文件放在添加的目录下,实际文件目录结构忽略 访问时 直接文件名即可 黄色文件夹:编译后,资源文件在 mainBundle 中,源代码程序需要通过这种方式拖拽添加 需要注意不能出现重名的文件 效率高 拖

UAC相关问题分析--使用管理员权限打开VisualStudio,无法访问网络磁盘,无法拖拽文件

搬运自http://wurang.me/2014/06/17/uac-problems.html [问题产生] 问题最初是在administrator权限下,visual studio 打开网络磁盘下的文件报错.经过几次调试,最终发现是问题是在管理员权限下,vs无法访问网络磁盘. Console.Write( System.IO.File.Exists(path)); 该结果返回False.为了确认是由于权限问题引起,使用非管理员权限打开vs,运行上面的程序,结果返回True. 至此问题确立:w

如何实现文件和文件夹的监控功能

分析问题 FileSystemWatcher类型定义在System.IO命名空间下,它的功能是监控某个文件夹下特定文件系统的变化.这样的变化可以包括创建.文件修改.重命名.删除等.程序员可以通过设置一个NotifyFilters枚举类型的成员来订阅感兴趣的信息.下表列出了NotifyFilters的所有项及其代表的意义. 名称 说明 长度 Attributes 文件或文件夹的属性 4 CreationTime 文件或文件夹的创建时间 64 DirectoryName 目录名 2 FileName

MyEclipse破解失败的解决办法 | 找不到plugin文件夹

文章出处:http://www.lihuoqing.cn/tool/803.html 感谢大侠的帮助. 前几天在Ubuntu装上了MyEclipse10.6最新版,用着还不错,一直都盲目的追求新版,也不知道有些什么新东西值得期待的,今天心情大好,翻出天朝去往西方MyEclipse官网把新版特征偷了过来,哈哈. 一.MyEclipse10.6 Enterprise WorkBench新版特征 New Editors in 10.6 Hibernate 4.1 New Server Support

[Java]接受拖拽文件的窗口

至于这个问题,Java的awt.dnd包下提供了许多完成这一功能的类 例如DropTarget.DropTargetListener等 先来讲一下DropTarget类,这个类完成和拖拽.复制文件等操作和Component的关联 常用的构造方法有这些: DropTarget(Component c, DropTargetListener dtl) c:要与它关联的组件 dtl:执行事件处理的DropTargetListener DropTarget(Component c, int ops, D

JAVA之IO技术-获取指定目录下的文件夹和文件的File对象或是字符串名称。

package ioTest.io3; /* * 获取指定目录下的文件夹和文件的File对象或是字符串名称. * 也可以通过filter获取指定的文件夹或者指定类型的文件 * 这里面需要做一个总结,如何利用jdk的源码去理解不熟悉的方法的应用. */ import java.io.File; import java.io.FileFilter; import java.io.FilenameFilter; public class FileDemo2 { public static void m

H5中的拖拽文件上传

一:介绍 1.内容摘要 2.主要设计的技术 3.drag与drop事件 4.drag与drop的部分重要代码 5.File Api 6.formData 二:程序演示 1. 1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 <title>无标题文档</title> 6 <script src="D:\jquery\jquer

用python查找在指定目录下特定文件夹下的指定文件

本代码是在python2.*上边所写. 功能:在指定目录下查找特定文件夹下的特定文件. 实例:查找在packages目录下文件夹名为values下的strings.xml文件 #!/usr/bin/env python import os def walk_dir(path): filter_file_name = 'strings.xml' for root, dirs, files in os.walk(path): for dir_item in dirs: if dir_item ==

HTML5开发 拖拽文件上传

Drag&Drop 拖拽功能的处理 关于HTML5拖拽文件上传,其实国外已经有很多网站有这样的应用,最早推出拖拽上传应用的是 Gmail,它支持标准浏览器下拖拽本地文件到浏览器中作为邮件的附件发送,但其实现在利用HTML5的功能实现,主要借助于新版支持的浏览器来实现,IE还是弱很多. 拖拽上传应用主要使用了以下 HTML5技术: Drag&Drop : HTML5基于拖拽的事件机制.File API : 可以很方便的让 Web 应用访问文件对象,File API 包括FileList.Bl