FileWatcher 使用遇到的问题

FileWatcher 可以对文件进行监控。但他是一个 托管 类。因为是个小白,之前用到的都是非托管类。在使用过程中出现了许多bug。

先来说一下目标:基于MFC的UI界面,显示监测的目标文件夹更新的图片,并将新增图片名存到文本文档中。

FileWatcher 可以对文件进行监控,并将监测到的数据返回。但此时返回的文件名是 System::String 类。这个类不能直接使用作为一个string字符串类进行保存。在System::String 和 std::String进行转换时出现问题。最终参考 http://blog.sina.com.cn/s/blog_695abcf70100m6ac.html  这篇文章。debug的时候一开始只 监控了 fsWatcher中的变量。监控的是监测到的文件名和转换之后的文件名。出现问题是 监测到的文件名可以正常显示,但是转换之后的文件名不能显示转换后的数据,仍为初始化得到数据。一开始以为是数据转换出问题。后来发现即便转换后的数据debug监控变量时不能正确显示,但是将其传到另一个类里面进行使用得到时候,数据是正确的。此处不知道是什么原因。

一开始的测试是一张一张的图片进行监测,后来是几张图片一起剪切到目标文件夹。(剪切和复制的不同导致数据重复记录的指路-- https://blog.csdn.net/L946494/article/details/105844342)。通过debug发现需要将 fsWatcher 每次监测到的全部数据存储到一个变量中(此处用的是 vector<string>),传变量数据,来进行处理,否则会导致最后只能处理最后一条数据。即一次复制10张图片到文件夹,检测到10条数据的变动,如果不进行全部数据的存储,会导致处理类只能最后获取到第10张图片的数据,只处理第10张。不知道是什么原因。

 

暂时写到这里,后续补低配版的源代码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值