如何使用C#从回收站恢复文件?

将文件移动到回收站并清空回收站已有详细记录,但如何从回收站以编程方式还原文件?

在纯C#中似乎没有解决方案。 你很可能不得不求助于P / Invoke。 本文使用SHFileOperation API在C ++中提供了一个解决方案。

除了之前提到的代码项目链接之外 ,我能看到的唯一其他参考文献提到了这一点:

调用SHGetFolderLocation传递CSIDL_BITBUCKET。 然后你可以照常操作该文件夹。 您必须为SHGetFolderLocation函数创建一个互操作。

“CSIDL_BUCKET”是虚拟RecycleBin文件夹的常量。 引用来自这里 ,并将涉及与Windows shell的互操作。 MSDN还提到这个function已被弃用,有利于Vista中的另一个function。