Como faço para excluir uma pasta que está em uso?

135

Às vezes, quando estou trabalhando no Windows, recebo esse prompt quando tento excluir um diretório:

Folder In Use
The action can't be completed because the folder is open in another program
Close the folder and try again.

No entanto, a pasta não está "em uso" e não a tenho aberta. Então, como posso excluí-lo antes da reinicialização?

Fator Místico
fonte
2
Acho que isso ocorre com mais freqüência ao trabalhar com arquivos Outlook e .msg; nesse caso, fechar o Outlook interrompe o erro "Pasta em uso". Consulte também a discussão sobre esta questão da comunidade da Microsoft .
Air

Respostas:

82

Esta resposta é antiga, mas parece ainda receber tráfego. Como observado abaixo, agora existe uma ferramenta integrada no Windows:

Iniciar → Todos os programas → Acessórios → Ferramentas do sistema → Monitor de recursos (ou Executar resmon.exe)

Você pode obter mais informações nas respostas abaixo desta. O restante desta resposta não é mais tão relevante.


O Process Explorer da Sysinternals permitirá pesquisar nas alças e nas DLLs. Procure o diretório e descubra qual processo está "usando" a pasta.

A partir daí, você pode encerrar esse processo ou simplesmente fechar esse identificador de arquivo específico. Certifique-se do que está fazendo ao trabalhar com o identificador de arquivo diretamente e verifique se ele não está sendo usado por algum processo importante.

Marc Reside
fonte
4
Mas como encontro o diretório usado pelo processo?
Johnny_D
2
Use Ctrl-F e digite o nome da pasta acima da que você está tentando excluir.
MikeMurko
4
Agora existe uma GUI nativa para Windows, veja minha resposta abaixo.
bcorso
3
* GUI nativa / embutida em / Windows (Resource Monitor), veja abaixo.
Jamie Pate
No meu caso, o Process Explorer não conseguiu encontrar o identificador, mas o Monitor de Recursos (veja outra resposta) foi capaz.
Bart Verkoeijen
182

Há uma GUI nativa para Windows:

Iniciar >> Todos os programas >> Acessórios >> Ferramentas do sistema >> Monitor de recursos (ou executar resmon.exe )

Você pode procurar as "Alças associadas" usando a caixa de pesquisa (circulada em vermelho) e clicar com o botão direito do mouse no processo que deseja finalizar.


Como exemplo, na imagem abaixo, não pude excluir meu diretório Eclipse. A procura dos identificadores associados ao Eclipse mostrou que o adb.exe tinha um identificador para o diretório. Depois de finalizar o processo adb, eu poderia excluir o diretório Eclipse.

insira a descrição da imagem aqui

bcorso
fonte
5
Este truque destacou o processo que estava me dando dor :)
Pure.Krome
2
O Monitor de Recursos requer credenciais de administrador.
Air
Tenho uma pasta bloqueada na área de trabalho que o monitor de recursos não lista como sendo usado. Ah bem.
sirdank
trancado? Isso é para resolver o erro específico da pergunta, ou seja, "a pasta está aberta em outro programa". Esta é a sua situação?
bcorso
1
Resolvido o problema para mim.
precisa saber é o seguinte
8

O Unlocker e o WhoLockMe não funcionam no Windows de 64 bits. Eu uso o LockHunter .

Joe
fonte
2
O Unlocker vem para o sistema de 64 bits.
avirk
A lockhunter encontrou para mim o processo de bloqueio que o ProcExp e o ResMon não conseguiram encontrar.
Clever Human
7

Ao usar ferramentas que força o fechamento de identificadores de arquivo (como o Unlocker mencionado anteriormente ), lembre-se de que isso pode causar sérios problemas. (Consulte este artigo de Raymond Chen .) Verifique quais aplicativos estão usando o arquivo e se nenhum deles está fazendo algo importante.

É mais seguro tentar desligar os aplicativos primeiro, em vez de forçar o fechamento da alça.

Brant Bobby
fonte
Muito bom artigo. Leitura importante.
Pacerier
6

Esse script REG fornecerá um item de menu de contexto com o botão direito do mouse "View Handles", que invocará o utilitário de identificador Sysinternals para ver todos os identificadores abertos do arquivo ou pasta em que você clicou com o botão direito.

Coloque o handle.exe da Sysinternals em um local acessível a partir do seu caminho.

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\AllFilesystemObjects\shell\Handle]
@="View &Handles"

[HKEY_CLASSES_ROOT\AllFilesystemObjects\shell\Handle\command]
@="cmd.exe /k handle -a -u \"%1\""
Robert Collier
fonte
Por que não usar apenas a versão da interface do usuário ProcessExplorer?
Pacerier
5

Eu já tive isso. Às vezes, posso resolver o problema excluindo primeiro o conteúdo e depois a pasta (vazia).

kpoehls
fonte
Sim - funcionou para mim!
precisa saber é o seguinte
@Wbdvlpr, @ kpoehls, Por que isso funcionaria? Eu acho que é apenas um mito e você tem sorte.
Pacerier
3

A abordagem mais rápida e simples é usar o Handle , conforme mencionado pelo slolife, em vez de usar o Process Explorer. Ambos são de Mark Russinovich @ Microsoft.

Não se surpreenda ao descobrir que o explorer.exe é o culpado, como fiz hoje. Aparentemente, existe uma maneira oficial de reiniciar o explorer.exe, mas parece que estou conseguindo matá-lo e iniciá-lo novamente no Gerenciador de Tarefas.


fonte
2

Quando estava no XP, usei o WhoLockMe para descobrir quais programas tinham arquivos abertos e bloqueados. A versão mais recente que pude encontrar não menciona o Vista, mas vale a pena tentar.

Às vezes, você pode excluí-lo de dentro para fora manualmente. Basta navegar na hierarquia, excluir todos os arquivos, mover um diretório para cima e repetir. Não sei por que o Windows não pode fazer isso sozinho, mas às vezes funciona para mim.

tghw
fonte
2

Se por "não estiver em uso", você quer dizer que não há identificadores abertos, verifique se o serviço Application Experience não está desativado . Nesse caso, defina-o como manual:

Run dialog (or command prompt):

  sc config AeLookupSvc start= demand
Synetech
fonte
2

Eu uso o Handle da SysInternals (agora Microsoft). Você pode digitar parte do nome da pasta para ver qual processo possui um identificador nessa pasta e depois matá-lo.

handle64.exe -nobanner "<path>"

Por exemplo:

saída de comando da linha de comando

Como outros já mencionaram, matar o cabo pode causar sérios problemas.

slolife
fonte
1

Eu tive o mesmo problema com um flash de memória (16 GB - provavelmente irrelevante) e não me permitiu excluir uma pasta. Tentei todas as soluções encontradas na internet (ocultando miniaturas, excluindo a pasta do prompt do cmd com o explorer.exe desligado, tudo ..) e nada funcionou. O que fez funcionar? Bem, isso:

  1. Selecione todos os arquivos dentro da pasta
  2. Clique com o botão direito sobre eles e selecione "Recortar"
  3. Volte para a pasta raiz
  4. Cole-os
  5. Exclua-os

Isso funcionou muito bem para mim. Espero ter ajudado. :-)

Marco
fonte
1

Para excluir uma pasta / programa que diz que você não pode excluí-lo porque está aberto em outro lugar.

  • Clique no botão Iniciar
  • Digite Taskmgr
  • Na nova janela que foi aberta, na guia processo, procure a pasta / programa que você está tentando excluir.
  • Clique com o botão direito e em Finalizar tarefa
  • Volte para o local da pasta / programa e você poderá excluí-lo agora
Hector
fonte
0

Experimente Ctrl+ Shift+ Esc> "programas", clique com o botão direito do mouse no que você deseja desativar e escolha desativar. Em seguida, exclua-o novamente!

(Meu SO está em sueco, portanto as traduções podem não ser exatamente iguais! Mas você entende!)

johan
fonte
0

Muitas vezes, o identificador bloqueado é o Internet Explorer, eu o fecho no gerenciador de tarefas, excluo o arquivo ou a pasta ou o fecho ... muitas vezes uma pasta tem um arquivo txt aberto e esse será o identificador que ganhou ' para excluir pastas / arquivos ... basta fechar o arquivo txt e, em seguida, você deve ficar bem, agora você pode excluir sua pasta.

cruzeiro por
fonte
Por que o IE bloquearia arquivos locais e por quê .txt?
precisa saber é o seguinte
0

Tinha um arquivo docs.zip em uso pelo WinSCP.

  1. Criei um novo arquivo usando o mesmo nome docs.zip
  2. Colado sobre o docs.zip existente e o arquivo antigo foi substituído pelo novo mesmo nome.
  3. Em seguida, apaguei o arquivo docs.zip recém-copiado.

Boa sorte

Syed Mazhar
fonte
0

Portanto, já existem boas respostas, mas contribuirei com algo novo, que foi o que eu costumava resolver esse mesmo problema hoje cedo.

Eu usei Python. Eu sei, eu sei, não é nativo do Windows, mas é um utilitário muito comum para administradores de sistemas, desenvolvedores e superusuários, e você pode fazer isso com um simples oneliner:

from shutil import rmtree; rmtree('C:\path\to\folder')

... bingo bango.

rubynorails
fonte
-1
  1. Encontre o arquivo que você deseja excluir.

  2. Renomeie para o que quiser.

  3. Delete isso.

Janpierre
fonte
2
Esta resposta não irá funcionar. Se um arquivo ou diretório for usado, você não poderá renomeá-lo.
DavidPostill
-2

vá para a pasta até o arquivo ou arquivos que estão sendo executados. quando você tenta excluir esse arquivo, ele fornece o processo em execução. anote isso, vá para o gerenciador de tarefas e termine esse processo. Depois disso, você pode excluir a pasta.

samer sarrouh
fonte