代码之家  ›  专栏  ›  技术社区  ›  florin

文件监视程序在文件删除后激发更改事件

c#
  •  0
  • florin  · 技术社区  · 16 年前

    我正在使用一个文件监视程序,一旦文件被添加到文件夹中,就会触发对它们的处理。处理完文件后,将其删除。

    我的问题是,在删除文件后,我会得到另一个文件更改事件,它与删除非常接近,甚至比在某些情况下检查文件更接近。当然,几毫秒后,当你想处理这个文件时,它并不真的存在。 文件监视程序设置为通知 notifyfilters.filename notifyfilters.lastaccess notifyfilters.lastwrite notifyfilters.size notifyfilters.attributes

    谢谢, 弗洛林

    2 回复  |  直到 16 年前
        1
  •  1
  •   Oliver    16 年前

    如果你稍微搜索一下,你会发现很多问题,人们喜欢检查他们是否能够访问文件,或者是否拥有所需的权限。

    问题是,即使你检查了它(就像你用 File.Exists() )在实际操作中,情况是可以改变的。

    所以就扔掉 文件.存在() 放一个 try catch 关于你的删除操作。
    如果失败了,由你自己决定是否只是悄悄地放下它,通知用户,关闭你的应用程序,关闭电脑,等等。

        2
  •  0
  •   Amsakanna    16 年前

    由于filechange是一系列事件,通常filewatcher会多次激发。 这里有一个有用的链接。 http://msdn.microsoft.com/en-us/library/system.io.filesystemwatcher.aspx 滚动到最后。