Метод 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, чем простое удаление.

Эта ссылка подразумевает полную противоположность вашего вопроса.

Другие вопросы по тегам