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

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

我怎样才能做到这一点?

编辑:

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

我发现了另一件事,我实际上可以在 C: ECYCLER 中找到一个具有相同文件扩展名但名称不同的文件。那么我如何判断这是否真的是我正在寻找的文件呢?

有帮助吗?

其他提示

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

希望这会有所帮助。对我有用)

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top