Jak usunąć używany folder?

134

Czasami podczas pracy w systemie Windows pojawia się ten monit przy próbie usunięcia katalogu:

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

Jednak folder nie jest w ogóle „w użyciu” i nie mam go otwartego. Jak mogę go usunąć po ponownym uruchomieniu?

Factor Mystic
źródło
2
Uważam, że występuje to najczęściej podczas pracy z plikami Outlook i .msg, w którym to przypadku zamknięcie programu Outlook zatrzymuje błąd „Folder w użyciu”. Zobacz także dyskusję na temat tego pytania do społeczności Microsoft .
Air

Odpowiedzi:

82

Ta odpowiedź jest stara, ale wydaje się, że nadal generuje ruch. Jak wspomniano poniżej, w systemie Windows jest teraz wbudowane narzędzie:

Start → Wszystkie programy → Akcesoria → Narzędzia systemowe → Monitor zasobów (lub Uruchom resmon.exe)

Możesz uzyskać więcej informacji w odpowiedziach poniżej. Reszta tej odpowiedzi nie jest już tak istotna.


Process Explorer firmy Sysinternals pozwoli ci przeszukiwać uchwyty i biblioteki DLL. Wyszukaj katalog i dowiedz się, który proces „używa” folderu.

Stamtąd możesz albo zamknąć ten proces, albo po prostu zamknąć ten konkretny uchwyt pliku. Upewnij się, co robisz, pracując bezpośrednio z uchwytem pliku i upewnij się, że nie jest używany przez jakiś ważny proces.

Marc Reside
źródło
4
Ale jak znaleźć katalog używany przez proces?
Johnny_D,
2
Użyj Ctrl-F i wprowadź nazwę folderu nad tym, który próbujesz usunąć.
MikeMurko
4
Istnieje teraz natywny interfejs GUI dla systemu Windows, zobacz moją odpowiedź poniżej.
bcorso
3
* Natywny GUI / wbudowany w / Windows (Monitor zasobów) patrz poniżej.
Jamie Pate,
W moim przypadku Process Explorer nie mógł znaleźć uchwytu, ale Monitor zasobów (zobacz inną odpowiedź) był w stanie.
Bart Verkoeijen
181

Istnieje natywny interfejs GUI dla systemu Windows:

Start >> Wszystkie programy >> Akcesoria >> Narzędzia systemowe >> Monitor zasobów (lub Uruchom resmon.exe )

Możesz wyszukać „Powiązane uchwyty” za pomocą pola wyszukiwania (zaznaczonego na czerwono) i kliknąć prawym przyciskiem myszy proces, który chcesz zakończyć.


Na przykład na poniższym obrazku nie mogłem usunąć mojego katalogu Eclipse. Wyszukiwanie uchwytów związanych z Eclipse pokazało, że adb.exe miał uchwyt do katalogu. Po zakończeniu procesu adb mogłem następnie usunąć katalog Eclipse.

wprowadź opis zdjęcia tutaj

bcorso
źródło
5
Ta sztuczka uwypukliła proces, który mnie zasmucił :)
Pure.Krome
2
Monitor zasobów wymaga poświadczeń administratora.
Air
Na pulpicie mam zablokowany folder, którego monitor zasobów nie wyświetla jako używany. No cóż.
sirdank,
zablokowany? Ma to na celu rozwiązanie konkretnego błędu w pytaniu, tj. „Folder jest otwarty w innym programie”. Czy to twoja sytuacja?
bcorso,
1
Rozwiązałem problem dla mnie.
RubenGeert 24.04.16
8

Unlocker i WhoLockMe nie działają w 64-bitowym systemie Windows. Używam LockHunter .

Joe
źródło
2
Unlocker jest dostępny dla systemu 64-bitowego.
avirk
lockhunter znalazł dla mnie proces blokowania, którego ProcExp i ResMon nie mogły znaleźć.
Clever Human
7

Korzystając z narzędzi, które wymuszają zamykanie uchwytów plików (takich jak wspomniany wcześniej Unlocker ), należy pamiętać, że może to spowodować poważne problemy. (Zobacz ten artykuł autorstwa Raymonda Chena .) Upewnij się, że wiesz, które aplikacje używają pliku i że żadna z nich nie robi nic ważnego.

Bezpieczniej jest najpierw spróbować zamknąć aplikacje, a nie tylko wymusić zamknięcie uchwytu.

Brant Bobby
źródło
Dobry artykuł. Ważna lektura.
Pacerier
6

Ten skrypt REG wyświetli element menu kontekstowego „Wyświetl uchwyty”, który wywoła narzędzie obsługi Sysinternals, aby wyświetlić wszystkie otwarte uchwyty pliku lub folderu, który kliknąłeś prawym przyciskiem myszy.

Umieść uchwyt.exe z Sysinternals w miejscu dostępnym z Twojej ścieżki.

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
źródło
Dlaczego nie skorzystać z wersji interfejsu użytkownika ProcessExplorer?
Pacerier
5

Tak się złożyło. Czasami mogę rozwiązać problem, usuwając najpierw zawartość, a następnie folder (pusty).

kpoehls
źródło
Tak - zadziałało dla mnie!
TigerTiger
@Wbdvlpr, @ kpoehls, Dlaczego miałoby to działać? Myślę, że to tylko mit, a ty masz szczęście.
Pacerier
3

Najszybszym i najprostszym podejściem jest użycie Handle , jak wspomniano w slolife, zamiast korzystania z Process Explorer. Oboje pochodzą od Marka Russinowicza @ Microsoft.

Nie zdziw się, gdy odkryłem, że explorer.exe jest winowajcą, tak jak dzisiaj. Najwyraźniej istnieje oficjalny sposób na ponowne uruchomienie explorer.exe, ale wydaje mi się, że nie mogę go zabić i uruchomić go ponownie w Menedżerze zadań.


źródło
2

Kiedy byłem na XP, korzystałem z WhoLockMe, aby dowiedzieć się, jakie programy mają otwarte i zablokowane pliki. Najnowsza wersja, którą mogłem znaleźć, nie wspomina o Vistie, ale warto spróbować.

Czasami możesz usunąć go ręcznie od wewnątrz. Po prostu przejdź w dół hierarchii, usuń wszystkie pliki, przejdź do katalogu i powtórz. Nie jestem pewien, dlaczego system Windows nie może tego zrobić sam, ale czasami działa dla mnie.

tghw
źródło
2

Jeśli przez „nieużywany” masz na myśli, że nie ma do niego otwartych uchwytów, upewnij się, że usługa Application Experience nie jest wyłączona . Jeśli tak, ustaw go na ręczny:

Run dialog (or command prompt):

  sc config AeLookupSvc start= demand
Synetech
źródło
2

Używam Handle z SysInternals (teraz Microsoft). Możesz wpisać część nazwy folderu, aby zobaczyć, który proces ma uchwyt w tym folderze, a następnie zabić uchwyt.

handle64.exe -nobanner "<path>"

Na przykład:

dane wyjściowe polecenia z wiersza polecenia

Jak wspomnieli inni, zabicie uchwytu może spowodować poważne problemy.

slolife
źródło
1

Miałem ten sam problem z pamięcią flash (16 GB - prawdopodobnie nie ma to znaczenia) i nie pozwoliłoby mi to usunąć folderu. Próbowałem każdego - dziwnego - rozwiązania znalezionego w Internecie (ukrywanie miniatur, usuwanie folderu z wiersza poleceń cmd przy wyłączonym explorer.exe, wszystko ...) i nic nie działało. Co sprawiło, że działało? Cóż, to:

  1. Wybierz wszystkie pliki w folderze
  2. Kliknij je prawym przyciskiem myszy i wybierz „Wytnij”
  3. Wróć do folderu głównego
  4. Wklej je
  5. Usuń ich

Dla mnie to zadziałało. Mam nadzieję, że pomogłem. :-)

Marco
źródło
1

Aby usunąć folder / program, który mówi, że nie można go usunąć, ponieważ jest otwarty gdzie indziej.

  • Kliknij przycisk Start
  • Wpisz Taskmgr
  • W nowym oknie, które się otworzyło, w zakładce proces poszukaj folderu / programu, który próbujesz usunąć.
  • Kliknij go prawym przyciskiem myszy i zakończ zadanie
  • Wróć do lokalizacji folderu / programu i powinieneś być w stanie ją teraz usunąć
Zabijaka
źródło
0

Spróbuj Ctrl+ Shift+ Esc> „programy”, a następnie kliknij prawym przyciskiem myszy ten, który chcesz dezaktywować, i wybierz opcję dezaktywuj. Następnie usuń go ponownie!

(Mój system operacyjny jest w języku szwedzkim, więc tłumaczenia mogą nie być dokładnie takie same! Ale rozumiesz!)

John
źródło
0

często zablokowanym uchwytem jest Internet Explorer, zamykam go w menedżerze zadań, a następnie usuwam plik lub folder lub zamykam Explorer ... często folder ma otwarty plik TXT, który będzie uchwytem, ​​który wygrał ” pozwól usunąć foldery / pliki ... po prostu zamknij plik txt i wtedy powinno być w porządku, możesz teraz usunąć swój folder.

przelotowa przez
źródło
Dlaczego IE blokuje pliki lokalne i dlaczego .txt?
gronostaj
0

Miał plik docs.zip w użyciu przez WinSCP.

  1. Utworzyłem nowy plik o tej samej nazwie docs.zip
  2. Wklejono istniejący plik docs.zip i stary plik został zastąpiony nowym plikiem o tej samej nazwie.
  3. Następnie usunąłem nowo skopiowany plik docs.zip razem.

Powodzenia

Syed Mazhar
źródło
0

Są już więc dobre odpowiedzi, ale zamierzam wnieść coś nowego, czego użyłem dzisiaj do rozwiązania tego samego problemu.

Użyłem Pythona. Wiem, wiem, że nie jest to natywny system Windows, ale jest bardzo popularnym narzędziem dla sysadminów, programistów i superużytkowników, i możesz to wyeliminować za pomocą prostego programu oneliner:

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

... bingo bango.

rubinorails
źródło
-1
  1. Znajdź plik, który chcesz usunąć.

  2. Zmień nazwę na dowolną.

  3. Usuń to.

Janpierre
źródło
2
Ta odpowiedź nie zadziała. Jeśli używany jest plik lub katalog, nie można go zmienić.
DavidPostill
-2

przejdź do folderu aż do pliku lub plików, które są wykonywane. gdy spróbujesz usunąć ten plik, podpowie Ci, jaki proces jest uruchomiony. zapisz to, a następnie przejdź do menedżera zadań i zakończ ten proces. Następnie możesz usunąć folder.

samer sarrouh
źródło