在删除之前访问文件

时间:2012-05-04 22:31:50

标签: c# windows .net-4.0 filesystemwatcher

使用FileSystemWatcher.OnDeleted事件时,是否可以在删除文件之前访问该文件?

我将关于文档本身的一些数据存储在其元数据中,在删除之前我需要该信息。

任何想法,如果有可能,有没有FileSystemWatcher如何实现?

更新://

我意识到将数据存储在文件中是不好的,因为在删除文件时我无法访问它。

解决方案:重写我的应用程序以将数据存储在本地数据库(sqlite / xml或类似的东西)中,因为我在创建/重命名/更新文件时获得完整路径和名称/删除它会更容易更新文件的数据库记录。

感谢大家的意见和建议!

2 个答案:

答案 0 :(得分:2)

  

在使用时,是否可以在删除文件之前访问该文件   FileSystemWatcher.OnDeleted事件?

事件是在文件删除之前触发的,因此在引发此事件时您将无法访问该文件。

  

任何想法,如果可能的话,如何实现这一目标?

我会使用OnChanged事件,每次文件更改时都会触发该事件。基本上,每次文件更改时都会读取文件元数据。如果文件经常更新,但在删除文件之前应该允许您拥有最新的元数据,这可能有点麻烦。

答案 1 :(得分:0)

FileSystemWatcher1 = Your Main Watcher.
FileSystemWatcher2 = RecycleBin Watcher

If the FileSystemWatcher1 Deleted file == the FileSystemWatcher2 Created File
{
    //Do what you want with the FileSystemWatcher2.FullPath
}