3

C#(可能是互操作)中是否有任何方法可以永久删除回收站中的特定文件?

在互联网上搜索时,我只找到了删除 TO 回收站而不是 FROM 的方法。我也不想清空整个垃圾箱,只清空一个特定文件。特定项目已在回收站中。

我怎样才能做到这一点?

编辑:

  1. 我自己没有把文件放在那里,我的程序也没有。其他人这样做了,所以我无法控制。
  2. Windows 搜索以某种方式能够找到我的文件...?!?

我发现了另一件事,我实际上可以在 C:\RECYCLER 中找到一个文件扩展名相同但名称不同的文件。那么我怎么知道这是否真的是我正在寻找的文件呢?

4

3 回答 3

2

你需要参考:

using Shell32;

代码:

var shl = new Shell();

// Get recycle folder
Folder recycler = shl.NameSpace(10);

FolderItems items = recycler.Items();
for (int i = 0; i < items.Count; i++)
{
    try
    {
        FolderItem fi = items.Item(i);
        string fileName = recycler.GetDetailsOf(fi, 0);
        string filePath = recycler.GetDetailsOf(fi, 1);
        string recyleDate = recycler.GetDetailsOf(fi, 2);
        
        if (fileName == "your file/folder")
        {
            // check if chosen item is a folder
            if (fi.IsFolder)
            {
                Directory.Delete(fi.Path, true);
            }
            else
            {
                File.Delete(fi.Path);
            }
        }
    }
    catch (Exception exc)
    {
        ...
    }
}

希望这可能会有所帮助。为我工作。

于 2013-01-15T17:41:32.957 回答
0

我从未尝试过,但您可以在每个单元的隐藏文件夹“RECYCLER”中搜索要删除的项目,然后将其删除。

于 2009-07-13T14:02:22.947 回答
-2

这可能是一个愚蠢的问题,但文件是否因为您的程序放在那里而进入回收站?如果是这样,您可以使用正常的文件操作删除文件并完全绕过回收站。

于 2009-07-13T14:01:12.493 回答