Метод System.IO.Directory.Delete просто отправляет файлы в корзину. Любой способ удалить навсегда?
В.NET я запускаю код Directory.Delete(tempdir, true);
навсегда удалить каталог и все содержащиеся в нем файлы. Этот метод удаления отправляет файлы только в корзину, а не навсегда удаляет их. Есть ли способ заставить Directory.Delete
perma-delete каталог и содержащиеся в нем файлы вместо простого перемещения в корзину? Я не мог найти другие перегрузки метода, чтобы сделать это.
РЕДАКТИРОВАТЬ: Как отметил Нил, это не то, что на самом деле происходит. Directory.Delete
действительно навсегда удаляет каталог и содержащиеся в нем файлы и не отправляет их в корзину. Извините за путаницу
2 ответа
Посмотрите на MSDN: FileSystem.DeleteDirectory.
Имеет параметр RecycleOption recycle
который использует перечисление со следующими параметрами:
- DeletePermanently
- SendToRecycleBin
Поэтому достаточно вызвать следующее:
My.Computer.FileSystem.DeleteDirectory(
DirectoryPath,
FileIO.UIOption.AllDialogs,
FileIO.RecycleOption.DeletePermanently);
Вы уверены, что это действительно то, что происходит? В документации MSDN нет ничего об этом поведении (и оно не было бы очень кроссплатформенным, если бы оно было). Использование системных функций, таких как корзина, обычно включает в себя некоторые более сложные функции API, чем простое удаление.
Эта ссылка подразумевает полную противоположность вашего вопроса.