Zo kun je niet-verwijderbare bestanden toch verwijderen
Je wilt een overbodig bestand weghalen, maar dit blijkt niet zomaar te lukken. Daar kunnen verschillende redenen voor zijn, maar elke oorzaak heeft gelukkig zijn oplossing.
Soms heb je zo'n bestand wat maar niet verwijderd wil worden, wat je ook probeert. In dit artikel tonen we je enkele oorzaken - met natuurlijk daarbij de manier waarop je het wél voor elkaar krijgt. Die redenen kunnen zijn:
- Het bestand is in gebruik
- Je hebt niet de juiste machtigingen
- Het bestand is corrupt
- Het bestand heeft een ongeldige naam
Lees ook: Zo zoek je bestanden op specifieke woorden in Windows
Op zich is een bestand dat zich niet zomaar laat verwijderen onschadelijk – tenzij het om malware gaat of wanneer het te veel schijfruimte inneemt. Maar het heeft ook een ‘psychologische’ kant: het stoort gewoon dat je telkens tegen zo’n bestand aan moet kijken, en dus wil je het weghebben. Lukt dit niet vanuit Windows Verkenner of zelfs niet met het opdrachtregelcommando del /F <pad_tnaar_bestand>, dan moet je andere maatregelen nemen.
Probeer sowieso eerst de oorzaak te achterhalen, want deze bepaalt mede je aanpak. Er zijn immers meerdere redenen te bedenken waarom een bestand zich niet zonder slag of stoot gewonnen geeft. We starten met de meer voor de hand liggende oorzaken en sluiten af met enkele minder gebruikelijke situaties.
In gebruik (Windows)
Een voor de hand liggende verklaring waarom een bestand zich niet zomaar laat verwijderen, is dat het in gebruik is. Dat kan een document zijn dat je in een applicatie hebt geopend, maar ook een bestand dat door een of ander achtergrondproces gebruikt wordt, mogelijk zelfs gedurende de gehele Windows-sessie.
Weet je om welke applicatie of proces het gaat en kun je de bijbehorende toepassing sluiten, dan is je probleem opgelost. Heb je geen idee, druk dan op Windows-toets+R en voer Resmon uit. In het venster van Broncontrole open je het tabblad Processor en tik je rechts op de balk Gekoppelde ingangen (een deel van) de ‘gegijzelde’ bestandsnaam in. Als het goed is, verschijnen in de kolommen Kopie en PID de naam en de ‘process identifier’ van de dader. Klik op deze ingang met de rechtermuisknop en kies Proces beëindigen, waarna het bestand zich wél laat verwijderen.
Of je zoekt dit proces op vanuit Windows Taakbeheer: druk op Ctrl+Alt+Esc, ga naar Processen en zoek in de kolommen Naam of PID naar de toepassing. Hier kun je dan vanuit het contextmenu op Beëindigen drukken.
In gebruik (extern)
Lukt het niet met Broncontrole of Taakbeheer, dan kun je ook externe tools inzetten. We stellen er twee aan je voor; een geavanceerde en een gebruiksvriendelijke app.
Process Explorer behoort tot de eerste categorie. Pak het gedownloade zip-archief uit en start procexp64.exe op. Ga naar Find / File Handle or DLL of druk op Ctrl+Shift+F en tik (een deel van) de bestandsnaam in. Zowel de procesnaam als de PID verschijnt, waarna je dit in het hoofdvenster kunt opzoeken in de kolommen Process of PID en vanuit het contextmenu met Kill Process kunt afsluiten.
Een stuk gebruiksvriendelijker is LockHunter. Klik na de installatie met de rechtermuisknop op de app in het Windows-startmenu en kies Als administrator uitvoeren. Druk op het knopje met de drie puntjes, kies Browse for a file en verwijs naar het nukkige bestand. Vervolgens klik je op Delete it!, eventueel nadat je eerst Unlock it! hebt gekozen.
In gebruik (herstart)
Lukt het je niet om het proces te beëindigen met een van de eerder genoemde methodes, probeer het dan nogmaals nadat je Windows hebt herstart. Deze methode kun je trouwens ‘automatiseren’ met LockHunter door hier Other… te selecteren en Delete At Next System Restart te kiezen. Na een herstart van Windows wordt het bestand dan vanzelf gewist.
Nog steeds niet? Dan lukt het vast door Windows in Veilige modus op te starten. Druk op de Windows-startknop, tik systeemconfiguratie in de zoekbalk in en start de applicatie op. Open Computer opstarten, plaats een vinkje bij Opstarten in veilige modus, laat Minimaal geselecteerd en druk op OK. Sluit nu eerst alle geopende applicaties af en bevestig met Opnieuw opstarten.
Windows start nu in een minimalistische modus op, waarbij alleen noodzakelijke (stuur)programma’s worden geladen. Verwijder nu eerst het gewraakte bestand, start vervolgens Systeemconfiguratie weer op, haal het vinkje weg bij Opstarten in veilige modus en bevestig met OK en met Opnieuw opstarten, voor een normale herstart.
Lukt het nu nog steeds niet, dan zit er weinig anders op dan je pc op te starten vanaf een live usb-stick met bijvoorbeeld Ubuntu, waarna je met de Linux-bestandsbrowser naar het bestand navigeert en het van hieruit verwijdert. Je doet er dan wel goed aan eerst (tijdelijk) de functie Snel opstarten in Windows uit te schakelen voor je met Linux gaat morrelen.
Meer documenten dan ruimte?
Bekijk hier het aanbod aan harde schijvenMachtigingen
Blijkt geen enkel programma of proces het bestand in kwestie geopend te houden, dan is er iets anders aan de hand. De kans is reëel dat ‘ACL’ dan de boosdoener is. Dit staat voor ‘Access Control List’ en heeft alles met (bestands)machtigingen te maken.
Meld je als administrator aan bij Windows. Navigeer met Verkenner naar het bestand. Rechtsklik hierop en kies Eigenschappen. Ga naar het tabblad Beveiliging om de accounts met de machtigingen te zien. Staat je eigen account ertussen, selecteer het dan, druk op Bewerken en plaats een vinkje bij Volledig beheer in de kolom Toestaan. Bevestig met OK (2x).
Staat je account er niet bij, druk dan op Bewerken en vervolgens op Toevoegen, zodat het venster Gebruikers of Groepen selecteren verschijnt. Hier druk je op Geavanceerd en daarna op Nu zoeken. Scrol tot bij je eigen account, waarmee je op dat moment bent aangemeld. Druk op OK (2x) en plaats een vinkje bij Volledig beheer in de kolom Toestaan. Bevestig opnieuw met OK (2x).
Lukt het verwijderen nog altijd niet, dan ga je een stapje verder. Open wederom het Eigenschappen-venster, ga naar Beveiliging en druk op Geavanceerd. Klik op Wijzigen bij Eigenaar en vervolgens op Geavanceerd / Nu zoeken. Scrol tot bij je account en druk op OK (2x) om jezelf tot eigenaar van dit bestand te promoveren. Sluit het Eigenschappen-venster af. Nu lukt het je vast wel om het bestand te verwijderen.
Opdrachtregel
In uitzonderlijke gevallen kan het gebeuren dat je de bestandsmachtigingen vanuit de grafische Verkenner-omgeving niet goed krijgt. In dat geval lukt het wellicht alsnog vanuit de Opdrachtprompt, die je als administrator dient uit te voeren.
Om alle machtigingen aan je eigen account toe te kennen voor een bepaald bestand voer je het volgende commando uit:
icacls "<pad_naar_bestand>" /grant <accountnaam>:F
Met het commando whoami kom je je eigen accountnaam te weten.
Om tevens het eigenaarschap van dit bestand over te nemen voer je, aangemeld met je eigen account, het volgende commando uit:
takeown /F "<pad_naar_bestand>"
Als het goed is, krijg je na elk van beide commando’s de melding dat de operatie succesvol is verlopen en laat het bestand zich netjes verwijderen.
Corruptie
Het kan ook gebeuren dat een bestand zich niet laat verwijderen vanwege een of andere systeemcorruptie op het niveau van schijfsectoren, of ten gevolge van hardware- of softwarefouten. Met wat geluk lost het opdrachtregelcommando chkdsk dit voor je op. Let wel, het is niet gezegd dat je hierdoor corrupte data kunt herstellen. Is dit je bedoeling, dan moet je dataherstel via andere wegen aanvliegen. Dergelijke herstelprocedures vallen echter buiten het bestek van dit artikel.
Klik met rechts op Opdrachtprompt in het Windows-startmenu en kies Als administrator uitvoeren. Voer het volgende commando uit:
chkdsk <stationsletter:> /R
Hiermee controleer je het station op slechte sectoren en wordt getracht leesbare informatie te herstellen. Als het commando het station niet kan ‘locken’, wordt gevraagd of je dit wilt laten uitvoeren bij de eerstvolgende herstart. Na afloop kun je het bestand normaliter wel verwijderen.
Schrikken opdrachtregelcommando’s je wat af, dan kan het ook als volgt. Open Verkenner, klik op Deze pc in het navigatiedeelvenster, klik met de rechtermuisknop op het gewenste station en kies Eigenschappen. Ga naar Extra en druk op Controleren / Station scannen. Na afloop krijg je nog de mogelijkheid om eventueel gedetecteerde fouten te herstellen. Klik op Details weergeven om de scanresultaten van het uitgevoerde commando chkdsk in de Windows Logboeken te consulteren.
Lees ook: Data herstellen met Active@ Disk Editor
Ongeldige naam
Een bestandsnaam in Windows moet aan bepaalde regels voldoen. Je leest welke regels dat zijn op deze Windows-documentatiepagina. Weet alvast dat een tiental tekens niet zijn toegelaten: \ / : * ? “ < > | evenals het zogeheten ASCII NUL-teken. Ook zijn sommige namen taboe voor bestanden, zoals CON, AUX, COM[n] en LPT[n]. Normaliter verhindert Windows (vanuit Verkenner) dat je ongeldige bestandsnamen creëert, maar we weten uit eigen ondervinding dat bepaalde applicaties daar soms toch in slagen, en dan krijg je zo’n bestand(snaam) vaak niet zomaar verwijderd.
Laten we even uitgaan van de bestandsnaam computer>idee.txt. Vanuit Verkenner verwijderen lukte ons niet, maar het lukte wel met het volgende opdrachtregelcommando:
del /F computer?idee.txt
Ga er evenwel niet vanuit dat dit in alle omstandigheden zal werken. Wat je dan nog kunt proberen, is het volgende commando, waarbij je de zogeheten POSIX-systeeminterface aanspreekt:
del \\?\<volledig_pad_naar_bestand>
Bijvoorbeeld:
del "\\?\y:\computer>idee.txt"
Of je start je systeem op met een live Linux-distributie en verwijdert met deze bestandsbeheerder het gewraakte bestand. Linux is immers vergeeflijker naar dergelijke bestandsnamen toe.
Nieuwe Windows-laptop nodig?
Kijk en vergelijkPadlengte
Als uitsmijter bekijken we nog even een uitzonderlijke situatie die we helaas zelf weleens hebben meegemaakt: de combinatie pad/naam van een bestand is langer dan 260 tekens. Je kunt zo’n bestand langs de normale weg dan niet meer verwijderen of rechtstreeks benaderen.
In dat geval kun je het pad inkorten door stelselmatig kortere namen aan de respectievelijke submappen te geven, te beginnen bij de rootmap.
Of je probeert het door tijdelijk een virtueel station aan het pad te koppelen met het volgende opdrachtregelcommando:
subst <vrije_stationsletter>: <padnaam>
Vervolgens kun je het bestand benaderen vanuit die stationsletter en het desgewenst verwijderen. Het virtuele station zelf haal je weg met:
subst <virtuele_stationsletter>: /D