How do I restore a file from the recycle bin using C#?
Moving files to the recycle bin and emptying the recycle bin are well documented, but how can a file be programmatically restored from the recycle bin?
Solution 1:
There seems not to be a solution in pure C#. You most likely have to resort to P/Invoke. This article presents a solution in C++ using the SHFileOperation API.
Solution 2:
The only other reference to this beyond the previously mentioned link to codeproject that I can see mentions this:
Call SHGetFolderLocation passing CSIDL_BITBUCKET. Then you can manipulate that folder as usual. You'll have to create an interop for the SHGetFolderLocation function.
"CSIDL_BUCKET" being the constant for the virtual RecycleBin folder. The quote is taken from here, and will involve interop with the Windows shell. MSDN also mentions that this function has been deprecated in favour of another in Vista.