从回收站删除单个项目

时间:2009-07-13 13:52:39

标签: c# delete-file recycle-bin

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

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

我该怎么做?

编辑:

  1. 我没有把文件放在那里,也不是我的程序。其他人这样做我无法控制。
  2. Windows搜索能以某种方式找到我的文件......?!?
  3. 我发现了另一件事,我实际上可以在C:\ RECYCLER中找到一个具有相同文件扩展名但名称不同的文件。那么如何判断这是否是我正在寻找的文件呢?

4 个答案:

答案 0 :(得分:2)

答案 1 :(得分:1)

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)
    {
        ...
    }

希望这可能会有所帮助。适合我)

答案 2 :(得分:0)

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

答案 3 :(得分:-1)

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