题
C# 中是否有任何方法(可能是互操作)可以永久删除回收站中的特定文件?
在互联网上搜索时,我只找到了删除“到”回收站的方法,而不是“从”删除的方法。我也不想清空整个垃圾箱,只想清空一个特定文件。该特定项目已在回收站中。
我怎样才能做到这一点?
编辑:
- 我自己没有把文件放在那里,我的程序也没有放在那里。别人这么做了,所以我无法控制。
- 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”中搜索要删除的项目,并将其删除。
这可能是一个愚蠢的问题,但是该文件是否因为您的程序将其放在那里而进入了回收站?如果是这样,您可以使用正常的文件操作删除该文件并完全绕过回收站。
不隶属于 StackOverflow