C#中是否有任何方式(可能是互操作)永久删除回收站中的特定文件?
在互联网上搜索时,我只找到了删除回收站而不是FROM的方法。
我也不想清空整个bin,只是一个特定的文件。特定项目已在回收站中。
我该怎么做?
编辑:
我发现了另一件事,我实际上可以在C:\ RECYCLER中找到一个具有相同文件扩展名但名称不同的文件。那么如何判断这是否是我正在寻找的文件呢?
答案 0 :(得分:2)
您需要查看PInvoke。
答案 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)
这可能是一个愚蠢的问题,但该文件是否已进入回收,因为您的程序将其放在那里?如果是这样,您可以使用普通文件操作删除文件并完全绕过回收站。