it-swarm.dev

Como excluo uma pasta em uso?

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

128
Factor Mystic

Essa resposta é antiga, mas parece continuar recebendo 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 da 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. Certifique-se sobre o que você está fazendo ao trabalhar com o identificador de arquivo diretamente e verifique se ele não está sendo usado por algum processo importante.

78
Marc Reside

Há uma GUI nativa para o Windows:

Iniciar >> Todos os programas >> Acessórios >> Ferramentas do sistema >> Monitor de recursos (ou Executar 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

170
bcorso

Ao usar ferramentas que forçam o fechamento de identificadores de arquivos (como o Unlocker mencionado anteriormente), lembre-se de que isso pode causar sérios problemas. (Veja este artigo de Raymond Chen .) Verifique se você sabe which 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 a alça a fechar.

7
Brant Bobby

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

7
Joe

Este script REG lhe dará um item de menu de contexto do tipo "View Handles" que clicará no utilitário do handle Sysinternals para ver todas as handles abertas para o arquivo ou pasta 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
Robert Collier

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

5
kpoehls

Se por "não em uso", você quer dizer que não há identificadores abertos para ele, então certifique-se de que Application Experience service não esteja desabilitado . Em caso afirmativo, defina como manual:

Run dialog (or command Prompt):

  sc config AeLookupSvc start= demand
2
Synetech

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 porque o Windows não pode fazer isso sozinho, mas às vezes funciona para mim.

2
tghw

Eu uso Handle da SysInternals (agora Microsoft). Você pode digitar parte do nome da pasta para ver qual processo tem um identificador nessa pasta e, em seguida, eliminar o identificador.

handle64.exe -nobanner "<path>"

Por exemplo:

 command output from commandline

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

2
slolife

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 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
Hector

Teve um arquivo docs.Zip em uso pelo WinSCP.

  1. Eu criei um novo arquivo usando o mesmo nome docs.Zip
  2. Colado sobre docs.Zip existente e o arquivo antigo foi substituído pelo novo arquivo com o mesmo nome.
  3. Então eu apaguei o arquivo recém copiado docs.Zip todos juntos.

Boa sorte

0
Syed Mazhar

Experimentar 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, então as traduções podem não ser exatamente iguais! Mas você entendeu!)

0
johan

Portanto, já existem algumas boas respostas, mas vou contribuir com algo novo, que é o que usei para resolver esse mesmo problema hoje cedo.

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

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

... bingo bingo.

0
rubynorails

Eu tive o mesmo problema com um flash de memória (16 GB - provavelmente irrelevante) e ele não me deixaria excluir uma pasta. Eu tentei todos os -freaking- solução encontrada na internet (esconder miniaturas, excluindo a pasta do prompt 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 e selecione "Cut"
  3. Volte para a pasta raiz
  4. Cole-os
  5. Exclua-os

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

0
Marco