Удаление одного элемента ИЗ корзины
-
12-09-2019 - |
Вопрос
Есть ли какой-либо способ в C # (возможно, взаимодействие) удалить определенный файл из корзины навсегда?
При поиске в Интернете я нашел только способы удаления В корзину не ИЗ.Я также не хочу очищать всю корзину целиком, только один конкретный файл.Конкретный элемент уже находится в корзине.
Как я могу это сделать?
Редактировать:
- Я не помещал туда ни файл сам, ни свою программу.Это сделал кто-то другой, так что я не могу это контролировать.
- Поиск Windows каким-то образом может найти мой файл ...?!?
Я выяснил еще кое-что, я действительно могу найти файл в C: ECYCLER с тем же расширением файла, но с другим именем.Итак, как я могу определить, действительно ли это тот файл, который я ищу?
Решение
Основываясь на следующем опубликовать на .NETMonster
Вам нужно проверить PInvoke.
Другие советы
using Shell32;
var Shl = новая оболочка();
// 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", которая есть у каждого устройства, и удалить его.
Возможно, это глупый вопрос, но попал ли файл в корзину, потому что ваша программа поместила его туда?Если это так, вы можете просто удалить файл с помощью обычных файловых операций и полностью обойти корзину.