请教,FileSystemWatcher响应的问题,当天揭帖,谢谢各位支持!!!

const_int 2004-10-25 06:41:58
前提:filesystemwatch监控某个目录,只监控文件的created。
1、当该目录短时间内有大量新文件生成时,会出现个别文件创建了,但是不触发created的情况。
1、触发created操作时,先在同目录下copy一个.bak的新文件,然后处理,然后删除文件。在copy 备份文件的时候就会报出IOException。
注:以上两种情况都是有时候出现,并不是一定会出现。操作系统为WindowsXP SP2。请各位帮忙看看怎么回事,有没有办法解决?谢谢了!
...全文
197 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
const_int 2004-10-27
  • 打赏
  • 举报
回复
谢谢各位,不触发Created事件的问题得到了解决,是buffer设置太小了。读写文件也存在报异常的问题,但已经有了处理思路。谢谢大家!
amendajing 2004-10-26
  • 打赏
  • 举报
回复
不懂!
codeangel 2004-10-26
  • 打赏
  • 举报
回复
关注中...
长江 2004-10-26
  • 打赏
  • 举报
回复
通过设置InternalBufferSize属性 设置文件监控的缓冲区大小,4kB大的缓冲区可监控有80个文件的目录,可根据目录中文件数推出适当缓冲区大小。
速马 2004-10-26
  • 打赏
  • 举报
回复
// 大量新文件生成时,会出现个别文件创建了,但是不触发created的情况。
肯定触发了,但是函数来不及处理
在函数开头加上Thread.Sleep(500);

// 触发created操作时,先在同目录下copy一个.bak的新文件
当外部程序创建文件后,created事件就触发了,但是往往写文件的操作还没结束,此时复制文件必然报告异常
方法同上,延时处理
也可以调用windows api查看文件是否被占用(超级的麻烦,而且很慢)
最好是创建文件的程序在写文件结束之前先设定readonly标志,写完了再设定为normal,你的程序可以不断的thread.sleep直到标志位改变后再拷贝
const_int 2004-10-26
  • 打赏
  • 举报
回复
为什么没有人回答呢,是这个问题太弱智了吗
criedshy 2004-10-25
  • 打赏
  • 举报
回复

hglai 2004-10-25
  • 打赏
  • 举报
回复
没有碰到过
学习ing
hivak47 2004-10-25
  • 打赏
  • 举报
回复
很少遇到,没有考虑过,帮你顶吧。
happyjun2000 2004-10-25
  • 打赏
  • 举报
回复
?偶然的问题呀,顶
const_int 2004-10-25
  • 打赏
  • 举报
回复
补充:第1条,不是批量文件的时候,有时候也会出现

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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