现在我要监视一个文件夹下的文件变化,对于这个文件夹可能操作有拷贝文件到这个文件夹和ftp文件到这个文件夹两种情况,在过滤设置为NotifyFilters.FileName|NotifyFilters.LastWrite时copy的changed事件是3次,但是ftp的changed事件是1次,文件的类型没有限制,我怎么才能可靠地判断一个文件已经传输完了?除了用这个类之外还有没有其他的方法了?

解决方案 »

  1.   

    你是指filesystemwatch控件?还是另一个,如果是filesystemwatch,现在就是用的这个,如果不是,能不能告诉我名字
      

  2.   

    to 我怎么才能可靠地判断一个文件已经传输完了?从server端很难判断一个文件是否已经传输完了,毕竟你无法知道文件大小,所以无法通过此方法去判断。比较好地解决方案来说,是客户端发消息告诉server端。否则你用独享的方式读取此文件来判断是否还有其他程序占用此文件。
      

  3.   

    因为往这个文件夹里放东西的方法不止ftp,甚至可能是另外的应用程序生成的文件到那里,这都是我不知道的,所以,是没得通知的。现在我用独享的方式打开文件,然后捕捉异常,但是现在又发现了一个问题。
        用ftp的时候是没问题的,但是通过copy的时候,因为拷贝的操作会触发3个changed事件,有些文件在响应changed事件的时候会出现“没有异常,有异常,没有异常”的顺序,而且是随机出现的,我试过各种大小的文件,都会发生,而且和拷贝的顺序无关。是不是这个和触发3次事件的对文件操作不同地方有关?