Come posso ripristinare un file dal cestino con C #?

Lo spostamento dei file nel cestino e lo svuotamento del cestino sono ben documentati, ma come è ansible ripristinare un file dal cestino?

Sembra che non ci sia una soluzione in puro C #. Molto probabilmente dovrai ricorrere a P / Invoke. Questo articolo presenta una soluzione in C ++ utilizzando l’API SHFileOperation .

L’unico altro riferimento a questo oltre il già citato link a codeproject che posso vedere cita questo:

Chiama SHGetFolderLocation passando CSIDL_BITBUCKET. Quindi puoi manipolare quella cartella come al solito. Dovrai creare un interop per la funzione SHGetFolderLocation.

“CSIDL_BUCKET” è la costante per la cartella RecycleBin virtuale. La citazione è presa da qui e coinvolgerà l’interoperabilità con la shell di Windows. MSDN menziona anche che questa funzione è stata deprecata a favore di un’altra in Vista.