Suppression d'un seul élément de la corbeille
-
12-09-2019 - |
Question
Est-il possible en C # (Interop peut-être) pour supprimer un fichier spécifique dans le bac de recyclage permanent?
Lors de la recherche sur Internet je ne ai trouvé des moyens de supprimer à la corbeille pas de.
Je ne veux pas aussi de vider l'ensemble bac, un seul fichier spécifique. L'élément spécifique est déjà dans la corbeille.
Comment puis-je faire?
EDIT:
- Je ne l'ai pas mis le dossier moi-même, ni mon programme. Quelqu'un d'autre a fait donc je ne contrôle pas cela.
- Windows Search est en quelque sorte capable de trouver mon dossier ...?!?
J'ai trouvé une autre chose, je peux effectivement trouver un fichier dans C: \ RECYCLER avec la même extension de fichier, mais un nom différent. Alors, comment puis-je savoir si cela est vraiment le fichier que je cherche?
La solution
D'après les poste sur .NETMonster
Vous devez vérifier PInvoke.
Autres conseils
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)
{
...
}
Il faut espérer que peut être utile. Fonctionne pour moi)
Je ne l'ai essayé, mais vous pouvez rechercher l'élément que vous souhaitez supprimer dans le dossier caché « RECYCLER » que chaque unité a, et le supprimer.
Cela peut être une question stupide, mais ne le fichier aller dans le recyclage parce que votre programme a mis là? Si oui, vous pouvez simplement supprimer le fichier en utilisant les opérations de fichiers normaux et contourner complètement la corbeille.