Eliminación de un solo elemento de la papelera de reciclaje
-
12-09-2019 - |
Pregunta
¿Hay alguna forma en C # (interoperabilidad tal vez) para borrar un archivo específico en la papelera de reciclaje de forma permanente?
Mientras que la búsqueda en Internet sólo he encontrado formas de eliminar a la papelera de reciclaje no FROM.
Asimismo, no desea vaciar toda la papelera, sólo un archivo específico. El elemento específico ya está en la papelera de reciclaje.
¿Cómo puedo hacer esto?
EDIT:
- No puse el archivo allí mismo, ni mi programa. Alguien más lo hizo así que no tengo control sobre eso.
- Windows Search alguna manera es capaz de encontrar mi archivo ...?!?
descubrí otra cosa, en realidad yo puedo encontrar un archivo en C: \ RECICLADOR con la misma extensión de archivo, sino un nombre diferente. Entonces, ¿cómo puedo saber si ese es realmente el archivo que estoy buscando?
Solución
Sobre la base de la siguiente poste en .NETMonster
Es necesario comprobar a cabo PInvoke.
Otros consejos
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)
{
...
}
Con suerte que pueda ser útil. Que funciona para mí)
Nunca probé pero se puede buscar el elemento que desea eliminar en la "RECICLADOR" oculto carpeta que tiene cada unidad, y eliminarlo.
Esto puede ser una pregunta estúpida, pero el archivo de entrar en el reciclaje porque su programa puso ahí? Si es así, puede simplemente borrar el archivo con las operaciones normales de archivos y pasar por alto la papelera de reciclaje completo.