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


Às vezes, quando estou trabalhando no Windows, recebo esse aviso 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 eu não a abro. Então, como posso deletar isso com pouca reinicialização?


113


origem


Eu acho que isso ocorre com mais freqüência quando se trabalha com o Outlook e arquivos .msg, caso em que fechar o Outlook interrompe o erro "Pasta em uso". Veja também discussão sobre esta questão da Comunidade da Microsoft. - Air


Respostas:


Essa resposta é antiga, mas parece ainda ter tráfego. Conforme observado abaixo, existe uma ferramenta incorporada no Windows agora:

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 dessa resposta não é mais tão relevante.


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

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


70



Mas como eu encontro o diretório que é usado pelo processo? - Johnny_D
Use Ctrl-F e digite o nome da pasta acima da que você está tentando excluir. - MikeMurko
Existe agora uma GUI nativa para o Windows, veja minha resposta abaixo. - bcorso
* GUI nativo / embutido / Windows (Monitor de Recursos) veja abaixo. - Jamie Pate
No meu caso, o Process Explorer não conseguiu encontrar o identificador, mas o Monitor de Recursos (ver outra resposta) foi capaz. - Bart Verkoeijen


Há uma GUI nativa para o Windows:

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

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


Por exemplo, na imagem abaixo, não consegui excluir meu diretório do Eclipse. A pesquisa pelas alças associadas ao Eclipse mostrou que o adb.exe tinha um identificador para o diretório. Depois de terminar o processo de adb, eu poderia excluir o diretório do Eclipse.

enter image description here


150



Este truque destacou o processo que estava me dando dor :) - Pure.Krome
O Monitor de Recursos requer credenciais de administrador. - Air
Eu tenho uma pasta bloqueada na minha á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 na pergunta, ou seja, "a pasta está aberta em outro programa". Essa é a sua situação? - bcorso
Resolvi o problema para mim. - RubenGeert


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


7



O Unlocker vem para sistema de 64 bits. - avirk
O lockhunter encontrou o processo de bloqueio para mim que tanto o ProcExp quanto o ResMon não puderam encontrar. - Clever Human


Ao usar ferramentas que forçam as alças de arquivos fechadas (como as destravador), tenha em mente que isso pode causar sérios problemas. (Vejo este artigo de Raymond Chen.) Verifique se você sabe qual aplicativos estão usando o arquivo e que nenhum deles está fazendo nada importante.

É mais seguro tentar desligar os aplicativos primeiro em vez de apenas forçar o identificador a fechar.


7



Boa matéria. Leitura importante. - Pacerier


Este script REG lhe dará um item de menu de contexto "View Handles" com o botão direito do mouse que invocará o Sysinternals manipular utilitário para ver todas as alças abertas no 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\""

6



Por que não usar apenas a versão da interface do usuário ProcessExplorer? - Pacerier


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


5



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


A abordagem mais rápida e simples é usar Lidar com, como 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 eu fiz hoje. Aparentemente há um maneira oficial para reiniciar o explorer.exe, mas parece que estou ficando longe de matá-lo e iniciá-lo novamente no Gerenciador de Tarefas.


3





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

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


2





Se por "não em uso", você quer dizer que não há identificadores abertos, então certifique-se de que Experiência de Aplicação serviço não está desativado. Em caso afirmativo, configure para manual:

Run dialog (or command prompt):

  sc config AeLookupSvc start= demand

2





A fim de 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 abriu, na aba do processo, procure a pasta / programa que você está tentando excluir.
  • Clique com o botão direito e Finalizar tarefa
  • Volte para o local da pasta / programa e você poderá excluí-lo agora

2