c# filesystemwatcher 监控文件是不是写完
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c# filesystemwatcher 监控文件是不是写完相关的知识,希望对你有一定的参考价值。
程序是这样的,它通过filesystemwatcher监控一个A文件夹的.jpg 文件,如果有新文件则传到服务器的B文件夹。 测试的时候把比较大的文件拷贝到A文件夹时会发生错误,因为该文件正被其他进程占用。我使用一个队列去保存这些大文件,即如果大文件进入A文件夹,则程序会发生异常,在catch块把这些发生异常的图片路径放到队列里,使用timer去定时上传这些文件。 现在发现一个新问题,A文件主要用来存放采集卡采集回来的图片,这些图片是先建立个空的jpg 文件,然后不断写入流。并且这些文件在复制时不会出现正在被其他文件占用的错误。所以在filesystemwatcher监控的时候经常把0KB的空文件上传到服务器。我已经把监控的类型设置为监控文件名或最后一次打开文件时间或属性改变或大小改变等,所有的监控类型都搭配试过了,但是还是不能解决上传0KB文件的问题。 谁能给个解决办法,感激不尽!
参考技术A 可以延迟上传,就是判断一下时间,比如10秒.在10秒内文件最后写入时间不变的才上传.当然,实时性不能保证.
如果10秒不够的话,可以设置更长些,看你的业务容忍度.
C#(098):文件监视 FileSystemWatcher
FileSystemWatcher [FileSystemWatcher 类 (System.IO) | Microsoft Docs](https://docs.microsoft.com/zh cn/dotnet/api/system.io.filesystemwatcher?view=net
以上是关于c# filesystemwatcher 监控文件是不是写完的主要内容,如果未能解决你的问题,请参考以下文章
c# filesystemwatcher 监控文件是不是写完
C#怎监控例似WORD这样用临时文档记录修改过的文件,并复制修改后的文件?