2013-04-24 2 views
0

У меня есть следующая ситуация: Я отслеживаю папку с классом FileSystemWatcher из .NET (C#). С помощью этого класса я узнаю, был ли файл удален, но я хочу следующее: запретить удаление файла, удалив отмену и переместить файл в мою собственную временную директорию, чтобы дать пользователю возможность восстановить файл.Есть ли возможность предотвратить удаление файлов в указанном каталоге?

Есть ли возможность реализовать такое поведение? Как я должен идти? Можно ли подключиться к некоторым глобальным событиям? Возможно ли это с помощью собственного драйвера файловой системы? Или мне нужно восстановить файл после того, как узнаем, что он был удален с помощью функции WinAPI CreateFile?

Заранее спасибо за помощь

+0

Почему бы просто не использовать окна recyclebin? пользователь может восстановить его там (также программно из вашего приложения, если вы этого хотите) – x4rf41

+0

Каковы варианты удаления файла? Это ваше приложение? Внешний (т. Е. Проводник)? т. е. это ваше собственное приложение, предотвратить, а не восстанавливать. – Aphelion

+0

Пользователь может удалить файл из проводника, командной строки и т. Д. Проблема в том, что пользователь может жестко удалять такие файлы. И в этой специальной папке приложение должно дать возможность восстановить удаленные файлы в течение некоторого времени. –

ответ

4

FileSystemWatcher не предоставляет никаких механизмов для перехвата файл удалений, только сообщить вам, что произошло.

Насколько велики данные файлы? В зависимости от размера этих файлов один из способов достижения (т. Е. Взлома) заключается в том, чтобы кэшировать файлы в другом месте, вне поля зрения, например. в памяти или на диске. Когда приложение запускается, запускайте файлы и кешируйте их (скопируйте их во временную папку или загрузите их в память). Обновляйте кеш при изменении или создании файлов и дайте им возможность восстановить их при их удалении. Это некрасиво, но это выполнило бы работу.

+0

Благодарим вас за ответ, но поскольку размер файла не ограничен, я не могу использовать это решение –

Смежные вопросы