Как восстановить файл из корзины с помощью С#?

Перемещение файлов в корзину и очистка корзины хорошо документированы, но как можно программно восстановить файл из корзины?

Ответ 1

Кажется, что не существует решения в чистом С#. Скорее всего, вам придется прибегнуть к P/Invoke. В этой статье представлено решение на С++ с помощью SHFileOperation API.

Ответ 2

Единственная ссылка на это выше упомянутой ссылки на codeproject, которую я вижу, упоминает следующее:

Вызвать SHGetFolderLocation, передавая CSIDL_BITBUCKET. Затем вы можете управлять этой папкой, как обычно. Вам понадобится создать interop для функции SHGetFolderLocation.

"CSIDL_BUCKET" является константой для виртуальной папки RecycleBin. Цитата взята из здесь и будет включать взаимодействие с оболочкой Windows. MSDN также упоминает, что эта функция была устарела в пользу другой в Vista.