Wie lösche ich einen Ordner, der gerade verwendet wird?

134

Wenn ich unter Windows arbeite, wird manchmal folgende Eingabeaufforderung angezeigt, wenn ich versuche, ein Verzeichnis zu löschen:

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

Der Ordner wird jedoch überhaupt nicht verwendet, und ich habe ihn nicht geöffnet. Wie kann ich es löschen, ohne neu zu starten?

Factor Mystic
quelle
2
Ich finde, dass dies am häufigsten auftritt, wenn ich mit Outlook- und .msg-Dateien arbeite. In diesem Fall stoppt das Schließen von Outlook den Fehler "Ordner in Verwendung". Siehe auch Diskussion zu dieser Microsoft Community-Frage .
Air

Antworten:

81

Diese Antwort ist alt, scheint aber immer noch Verkehr zu bekommen. Wie unten erwähnt, gibt es jetzt ein eingebautes Tool in Windows:

Start → Alle Programme → Zubehör → Systemprogramme → Ressourcenmonitor (oder resmon.exe ausführen)

Weitere Informationen erhalten Sie in den Antworten unten. Der Rest dieser Antwort ist nicht mehr so ​​relevant.


Mit Process Explorer von Sysinternals können Sie die Handles und DLLs durchsuchen. Suchen Sie nach dem Verzeichnis und finden Sie heraus, welcher Prozess den Ordner "verwendet".

Von dort aus haben Sie die Möglichkeit, diesen Prozess entweder herunterzufahren oder nur diesen bestimmten Datei-Handle zu schließen. Stellen Sie sicher, was Sie tun, wenn Sie direkt mit dem Datei-Handle arbeiten, und stellen Sie sicher, dass es nicht von einem wichtigen Prozess verwendet wird.

Marc wohnen
quelle
4
Aber wie finde ich Verzeichnis, das von Prozess verwendet wird?
Johnny_D
2
Verwenden Sie Strg-F und geben Sie den Namen des Ordners über dem Ordner ein, den Sie löschen möchten.
MikeMurko
4
Es gibt jetzt eine native GUI für Windows, siehe meine Antwort unten.
bcorso
3
* Native GUI / eingebaut in / Windows (Resource Monitor) siehe unten.
Jamie Pate
In meinem Fall konnte der Prozess-Explorer das Handle nicht finden, der Ressourcenmonitor (siehe andere Antwort) jedoch.
Bart Verkoeijen
180

Es gibt eine native GUI für Windows:

Start >> Alle Programme >> Zubehör >> Systemprogramme >> Resource Monitor (oder Run resmon.exe )

Sie können über das Suchfeld (rot eingekreist) nach den "verknüpften Handles" suchen und mit der rechten Maustaste auf den Vorgang klicken, den Sie beenden möchten.


In der folgenden Abbildung konnte ich beispielsweise mein Eclipse-Verzeichnis nicht löschen. Die Suche nach den Eclipse-Handles ergab, dass die Datei adb.exe über ein Handle für das Verzeichnis verfügt. Nach Beendigung des ADB-Prozesses konnte ich dann das Eclipse-Verzeichnis löschen.

Bildbeschreibung hier eingeben

bcorso
quelle
5
Dieser Trick hob den Prozess hervor, der mir Kummer
bereitete
2
Für den Ressourcenmonitor sind Administratoranmeldeinformationen erforderlich.
Air
Ich habe einen gesperrten Ordner auf meinem Desktop, der vom Ressourcenmonitor nicht als verwendet aufgeführt wird. Naja.
sirdank
verschlossen? Dies ist, um den bestimmten Fehler in der Frage zu lösen, dh "der Ordner ist in einem anderen Programm geöffnet." Ist das deine Situation?
bcorso
1
Löste das Problem für mich.
RubenGeert
8

Unlocker und WhoLockMe funktionieren unter 64-Bit-Windows nicht. Ich benutze LockHunter .

Joe
quelle
2
Unlocker kommt für 64-Bit-System.
Avirk
lockhunter hat den Sperrvorgang für mich gefunden, den ProcExp und ResMon nicht finden konnten.
Clever Human
7

Beachten Sie bei der Verwendung von Tools, die das Schließen von Dateihandles erzwingen (wie z. B. dem zuvor erwähnten Unlocker ), dass dies zu ernsthaften Problemen führen kann. (Siehe diesen Artikel von Raymond Chen .) Stellen Sie sicher, dass Sie wissen, welche Anwendungen die Datei verwenden und dass keine von ihnen etwas Wichtiges tut.

Es ist sicherer, zuerst die Anwendungen zu beenden, als nur den Handle zu schließen.

Brant Bobby
quelle
So guter Artikel. Wichtig zu lesen.
Pacerier
6

Mit diesem REG-Skript erhalten Sie einen Kontextmenüeintrag zum Anzeigen von Handles, mit dem das Sysinternals-Handle-Dienstprogramm aufgerufen wird, um alle geöffneten Handles für die Datei oder den Ordner anzuzeigen, auf die bzw. den Sie mit der rechten Maustaste geklickt haben.

Platzieren Sie handle.exe von Sysinternals an einem Ort, auf den Sie über Ihren Pfad zugreifen können.

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
quelle
Warum nicht einfach die UI-Version ProcessExplorer verwenden?
Pacerier
5

Das ist mir schon passiert. Manchmal kann ich das Problem beheben, indem ich zuerst den Inhalt lösche und dann den Ordner (leer).

kpoehls
quelle
Ja - es hat bei mir funktioniert!
TigerTiger
@Wbdvlpr, @ kpoehls, warum sollte das funktionieren? Ich denke, es ist nur ein Mythos und Sie haben Glück.
Pacerier
3

Die schnellste und einfachste Methode ist die Verwendung von Handle , wie von slolife erwähnt, anstelle von Process Explorer. Sie sind beide von Mark Russinovich @ Microsoft.

Seien Sie nicht überrascht, dass explorer.exe der Schuldige ist, wie ich es heute getan habe. Anscheinend gibt es eine offizielle Möglichkeit , explorer.exe neu zu starten, aber ich komme anscheinend davon, es zu beenden und es im Task-Manager erneut zu starten.


quelle
2

Als ich auf XP war, habe ich mit WhoLockMe herausgefunden, bei welchen Programmen Dateien geöffnet und gesperrt waren. Die neueste Version, die ich finden konnte, erwähnt Vista nicht, aber es wäre einen Versuch wert.

Manchmal können Sie es manuell von innen nach außen löschen. Navigieren Sie einfach ganz nach unten in der Hierarchie, löschen Sie alle Dateien, verschieben Sie ein Verzeichnis nach oben und wiederholen Sie den Vorgang. Ich bin mir nicht sicher, warum Windows das nicht kann, aber manchmal funktioniert es bei mir.

tghw
quelle
2

Wenn "nicht verwendet" bedeutet, dass es keine offenen Handles dafür gibt, stellen Sie sicher, dass der Application Experience- Dienst nicht deaktiviert ist . Wenn ja, stellen Sie es auf manuell:

Run dialog (or command prompt):

  sc config AeLookupSvc start= demand
Synetech
quelle
2

Ich benutze Handle von SysInternals (jetzt Microsoft). Sie können einen Teil des Ordnernamens eingeben, um zu sehen, welcher Prozess ein Handle für diesen Ordner hat, und dann das Handle beenden.

handle64.exe -nobanner "<path>"

Zum Beispiel:

Befehlsausgabe von der Kommandozeile

Wie andere bereits erwähnt haben, kann das Töten des Griffs schwerwiegende Probleme verursachen.

slolife
quelle
1

Zum Löschen eines Ordners / Programms, der besagt, dass Sie ihn nicht löschen können, weil er an einer anderen Stelle geöffnet ist.

  • Klicken Sie auf die Schaltfläche Start
  • Geben Sie Taskmgr ein
  • Suchen Sie im neuen Fenster auf der Registerkarte "Prozess" nach dem Ordner / Programm, den Sie löschen möchten.
  • Klicken Sie mit der rechten Maustaste darauf und wählen Sie Task beenden
  • Gehen Sie zurück zum Ordner / Programmverzeichnis und Sie sollten es jetzt löschen können
Tyrannisieren
quelle
0

Versuchen Sie Ctrl+ Shift+ Esc> "Programme", klicken Sie mit der rechten Maustaste auf das Programm, das Sie deaktivieren möchten, und wählen Sie Deaktivieren. Dann lösche es wieder!

(Mein Betriebssystem ist auf Schwedisch, daher sind die Übersetzungen möglicherweise nicht genau gleich! Aber Sie verstehen es!)

Johan
quelle
0

Ich hatte das gleiche Problem mit einem Speicher-Flash (16 GB - wahrscheinlich irrelevant) und konnte keinen Ordner löschen. Ich habe jede im Internet gefundene -freaking- Lösung ausprobiert (versteckte Thumbnails, löschte den Ordner von der cmd-Eingabeaufforderung mit heruntergefahrener explorer.exe, alles ..) und nichts hat funktioniert. Warum hat es funktioniert? Nun, das:

  1. Wählen Sie alle Dateien im Ordner aus
  2. Rechtsklicke sie an und wähle "Ausschneiden"
  3. Gehen Sie zurück zum Stammordner
  4. Fügen Sie sie ein
  5. Lösche sie

Das hat gut funktioniert für mich. Hoffe ich habe geholfen. :-)

Marco
quelle
0

Hatte eine Datei docs.zip von WinSCP verwendet.

  1. Ich habe eine neue Datei mit dem gleichen Namen docs.zip erstellt
  2. Über vorhandene docs.zip-Dateien eingefügt und die alte Datei wurde durch eine neue Datei mit demselben Namen ersetzt.
  3. Dann habe ich die neu kopierte Datei docs.zip alle zusammen gelöscht.

Viel Glück

Syed Mazhar
quelle
0

Es gibt also bereits einige gute Antworten, aber ich werde etwas Neues beisteuern, mit dem ich das gleiche Problem früher heute gelöst habe.

Ich habe Python verwendet. Ich weiß, ich weiß, es ist nicht ursprünglich für Windows, aber es ist ein sehr weit verbreitetes Dienstprogramm für Systemadministratoren, Entwickler und Superuser, und Sie können dies mit einem einfachen Oneliner ausschalten:

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

... Bingo Bango.

Rubinrillen
quelle
-1

Oft ist das gesperrte Handle der Internet Explorer. Entweder schließe ich es im Task-Manager, dann lösche ich die Datei oder den Ordner oder schließe den Explorer. lass dich Ordner / Dateien löschen ... schließe einfach die txt-Datei und dann solltest du in Ordnung sein, du kannst jetzt deinen Ordner löschen.

vorbeifahren
quelle
Warum würde IE lokale Dateien sperren und warum .txt?
Gronostaj
-3

Gehen Sie in den Ordner bis zu der Datei oder den Dateien, die ausgeführt werden. Wenn Sie versuchen, diese Datei zu löschen, werden Sie darüber informiert, welcher Prozess ausgeführt wird. Schreiben Sie das auf, gehen Sie dann zum Task-Manager und beenden Sie diesen Vorgang. Danach können Sie den Ordner löschen.

Samer Sarrouh
quelle
-3
  1. Suchen Sie die Datei, die Sie löschen möchten.

  2. Benennen Sie es nach Belieben um.

  3. Lösche es.

Janpierre
quelle
2
Diese Antwort wird nicht funktionieren. Wenn eine Datei oder ein Verzeichnis verwendet wird, können Sie es nicht umbenennen.
DavidPostill