Pergunta

Existe alguma maneira em C # (interoperabilidade talvez) para excluir um arquivo específico na lixeira permanentemente?
Embora a pesquisa na internet eu só encontrei maneiras de apagar para a lixeira não FROM. Eu também não quero esvaziar todo o bin, apenas um arquivo específico. O item específico já está na lixeira.

Como posso fazer isso?

EDIT:

  1. eu não colocar o arquivo lá eu, nem meu programa. Alguém fez isso eu não tenho controle sobre isso.
  2. Windows Search de alguma forma é capaz de encontrar o meu arquivo ...?!?

Eu descobri outra coisa, eu posso realmente encontrar um arquivo em C: \ RECYCLER com a mesma extensão de arquivo, mas um nome diferente. Então, como posso dizer se isso é realmente o arquivo que estou procurando?

Foi útil?

Outras dicas

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)
    {
        ...
    }

Esperamos que possa ser útil. Obras para me)

Eu nunca tentei, mas você pode procurar o item que deseja excluir na pasta "RECYCLER" oculto que cada unidade tem, e excluí-lo.

Esta pode ser uma pergunta estúpida, mas se o arquivo ir para a reciclagem porque o seu programa de colocá-lo lá? Se assim for, você pode simplesmente excluir o arquivo usando operações de arquivo normais e ignorar a lixeira inteiramente.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top