如果从文件系统中删除文件,.NET(C#或VB.NET)如何用于创建文件的副本?我们有笔记本电脑用户定期删除文件而不知道他们何时/是否已备份。我想构建一个Windows服务来监视删除事件,并在文件实际删除之前将文件复制到安全位置。我的搜索指向了回收站,但我无法保证回收站正在使用中。
答案 0 :(得分:2)
要在删除发生之前拦截删除,您需要编写一个file system minifilter,这几乎不是托管代码。但是,它可以是一个相当薄的组件,可以talk to a service or application,它本身可以用P / Invoke的副订单在托管代码中编写。
请注意不要过滤服务中创建的文件(或因旧版本/已经备份而丢弃)的删除。托管代码框架本身有时也使用临时文件; XmlSerializer喜欢编译临时程序集以加速其操作。未能适当注意,您的代码可能全部ouroboros。