Te lange bestandsnaam opgegeven om te openen. Als een bestand met een lange naam niet wordt verwijderd en er verschijnt een foutmelding dat het bestandssysteem zulke lange namen niet ondersteunt

Het schadelijke Windows-besturingssysteem staat u niet toe om het bestand te verwijderen en roept dat het een "te lang pad naar de bron" heeft? In dit artikel zal ik je vertellen hoe gemakkelijk en eenvoudig, zonder programma's, deze aanval te verslaan door de bestandsnaam in te korten.

Te lange weg naar de bron - waarom?

Ik wil meteen uitleggen waarom zo'n systeemwaarschuwing verschijnt en het is niet mogelijk om elementaire kopieer- of verwijderacties uit te voeren met een bestand (map) ...

De melding zelf bevat het antwoord op deze vraag - het Windows-bestandssysteem ondersteunt (begrijpt niet) bronbestandsnamen die langer zijn dan 255 tekens.

Maar heb je een korte bestands- of mapnaam, bijvoorbeeld "Vakantiefoto"? Het punt is dat het "domme" systeem het hele pad naar het bestand als naam neemt. Als uw bestand of map ergens te diep in de bestandsbeheerder ligt, ziet de naam ervan er ongeveer zo uit ...

Zo worden de karakters van de naam verzameld in een bende van meer dan 255 stukjes.

Hoe kan ik een bestand of map verwijderen die in dit geval niet kan worden verwijderd? Het is heel eenvoudig - u moet de bestandsnaam (pad) inkorten door de mappen die in elkaar zijn genest te hernoemen.

Een bestand met een lange naam verwijderen

Ik zal met mijn voorbeeld laten zien hoe je een bestand met een lange naam kunt verwijderen, dat, zoals het systeem schrijft, een te lang pad naar de bron heeft.

Gisteren heb ik besloten maak je computer schoon van oude siteback-ups, maar ze wilden niet verwijderen. Zoals je al geraden had, was er een waarschuwing over een te lang pad naar de bron ...

Beginnend vanaf de allereerste map in dit lange pad - verschillende stukken hernoemd ...

... en probeerde opnieuw om het bestand met de nu kortere naam kwijt te raken - het ging veilig naar het land van verwijderde bestanden.

Uiteraard moet de nieuwe naam van het bestand (map) uit één teken of cijfer bestaan, zoals in mijn voorbeeld.

Zo is het probleem van het verwijderen van bestanden of mappen met een lange naam eenvoudig op te lossen. Dit is natuurlijk niet de enige methode. Kan verwijderen met speciale programma's of via het register - ik heb zojuist de handmatige methode laten zien. Voor iemand duurt het een minuut van alles, en voor iemand duurt het een half uur - het is aan jou hoe je de bestandsnaam en het te lange pad naar de bron verkort.

Tot nieuwe handige tips en interessante computerprogramma's.

Hier is een voorbeeld van een mappenstructuur die ik een "grote nestpop" noem:

Zoals u kunt zien, bevindt zich op het "D" (Data) -station een originele videomap, er is een map "Movies" in, "Alles wat u nodig heeft om films te kijken" en dan op dezelfde manier een map in een map. Tegelijkertijd hebben veel mappen lange namen van namen - meer dan 10-15 tekens, wat in totaal het aantal tekens in alle namen meer dan 260 geeft. En als er aan het einde van zo'n "matryoshka" een bestand, dan kan het blijken dat u er niet mee werkt, kunt u ... Soms staat het systeem zelf niet toe dat u uiteindelijk een map of bestand maakt dat het toegestane aantal tekens overschrijdt, maar soms gebeurt dit om de een of andere reden .

In het begin zal ik voor beginners uitleggen wat het pad naar een bestand en map is. Het pad is het zogenaamde adres op de computer waar het bestand of de map zich bevindt. Een bestand met de naam "Mijn bestand.txt" bevindt zich bijvoorbeeld op de lokale schijf D: in de map "Documenten". Het pad naar dit bestand ziet er dan als volgt uit:

D: \ Documenten \ Mijn bestand.txt

Of, bijvoorbeeld, dit is hoe het pad uit het bovenstaande voorbeeld, waar ik een complexe mappenstructuur liet zien, eruit zal zien.

Zoals u kunt zien, is het aantal tekens in het bovenstaande pad groot en is het mogelijk dat er aan het einde een bestand of map met een lange naam is die u niet kunt verwijderen.

Wanneer u een bestand met een lange padnaam probeert te verwijderen, krijgt u een venster met een foutmelding als deze:

Ik heb geprobeerd het probleem kunstmatig opnieuw te creëren en dit is wat ik kreeg.

Op schijf "D" heb ik een map gemaakt met een korte naam "1" en een bestand met een zeer lange naam erin geplaatst. Hier is een voorbeeld:

Nu hernoem ik die map "1" naar een heel lange naam, bijvoorbeeld:

Interessant is dat je in Windows vrijelijk een map kunt hernoemen naar zo'n lange naam, ondanks het feit dat het aantal tekens in de naam van deze map + bestandsnaam al meer dan 260 is! Welnu, na zo'n hernoeming van een map naar een lange naam, kan ik het bestand dat erin staat niet langer verwijderen en krijg ik de foutmelding.

Of hier is een ander voorbeeld ... Ik onderhoud de site van de Moscow Instrument-Making Technical School, waar ik voorheen fulltime werkte en soms gebruik ik een kopie van de site op mijn computer om wat nieuwe "goodies" voor de site te testen. En wat als ik iets slechts installeer en de site op de hosting sterft? :) En dus controleer ik het op mijn computer en als alles in orde is, dan heb ik het al ingesteld op een echte site die zich op een hosting bevindt. Dus toen ik de hele site van de hosting had overgezet om één ding te testen, en nadat ik klaar was met werken, besloot ik de map met de site van mijn computer te verwijderen. Hij weegt immers zo'n 6 GB. De hele site is verwijderd, op een aantal mappen na. Ik begon te zoeken en zag dat die mappen met een bestand met een lange naam in de vorm van hiërogliefen niet waren verwijderd:

Ik probeerde opnieuw om dit bestand met een lange naam te verwijderen en zag dezelfde fout die ik hierboven noemde. Ik heb geprobeerd het te hernoemen, het werkt ook niet. Nou, ik moest nadenken over hoe ik het probleem kon oplossen.

Hoe het probleem op te lossen van het verwijderen van een map / bestand met een lange padnaam!

Ik heb 2 manieren geprobeerd om een ​​map / bestand met een lange naam in het pad ernaartoe te verwijderen. Beide zijn technisch niet moeilijk (vooral de 1e), dus ik denk dat een beginner het aankan als hij alles precies doet zoals ik laat zien:

    Hernoem meerdere mappen in het bestandspad naar een kortere naam. Dit is de eenvoudigste oplossing, die al velen zou moeten helpen! Stel dat je een bestand in een map hebt met een erg lange naam die je niet kunt verwijderen, openen, kopiëren en in het algemeen niet mee kunt werken.

    Probeer vervolgens de map met het bestand met een lange naam te hernoemen, bijvoorbeeld naar "1". Ik kom terug op een van de bovenstaande voorbeelden. Hier is een map met een lange naam:

    Ik hernoem de naam van die map naar "1" via de standaard Windows Verkenner en zo ziet het pad naar het bestand er nu uit:

    Nu kunt u veilig met het bestand werken, het systeem zal het openen, hernoemen en verwijderen.

    Als u een lange boom met mappen hebt, bijv. als een nestpop, in de ene map is er een andere, er weer in, dan nog een keer, begin dan met hernoemen vanaf de allereerste map van deze nestpop. Niet van de laatste op de lijst, maar van de eerste!

    Het kan zijn dat er een enorm aantal mappen zijn en het is misschien niet mogelijk om sommige ervan te hernoemen vanwege dezelfde fout, of het zal u veel tijd kosten. In dit geval stel ik de tweede manier voor.

    De manier is dat je bijvoorbeeld een map in het midden van een gedeelde boomstructuur kunt nemen en deze als virtuele schijf kunt verbinden. Een virtuele schijf is iets dat ons doet denken aan een gewone lokale schijf, maar dat eenvoudigweg aan een specifieke map is gekoppeld, bijvoorbeeld om er snel mee te kunnen werken.

    Laten we zeggen dat je een lange weg hebt, zoals deze:

    D: \ Videos \ My Movies \ Alles wat je nodig hebt om films te kijken \ Programma's om films te kijken \ Hoe MP4-films te openen \ Lijst met MP4-voorbeeldfilms \ Lijst met programma's om MP4 te openen \ Wat niet te doen bij het openen van MP4-bestanden

    Stel dat we in de allerlaatste map een problematisch bestand hebben waarmee we niet kunnen werken, omdat het pad ernaartoe, zoals we kunnen zien, behoorlijk lang is :)

    We kunnen een van de mappen met een lange naam in het midden van het pad nemen en verbinden als een virtuele schijf. Laat het de map "Programma's voor het kijken van films" zijn.

    Om een ​​virtuele schijf aan te sluiten, hebben we de zogenaamde Windows-opdrachtregel nodig, d.w.z. troosten.

    U kunt het openen via de Windows-zoekopdracht. In de zoekopdracht en typ "Opdrachtregel":

    In het opdrachtregelvenster moeten we de opdracht typen:

    subst virtual_drive_letter "mappad"

    U kunt elke stationsletter plaatsen, alleen zodat deze niet langer wordt ingenomen door een van de lokale stations. U hebt bijvoorbeeld een lokale schijf C en D, wat betekent dat u de virtuele schijf niet dezelfde letter kunt noemen. Je kunt het bijvoorbeeld de letter "X" noemen, omdat het door niemand in Windows wordt gebruikt.

    Als pad naar de map voeg je het pad in naar de map die je virtueel wilt verbinden. Zoals ik al zei, zullen we in mijn voorbeeld de virtuele map "Programma's voor het bekijken van films" maken, wat betekent dat het pad als volgt moet worden gespecificeerd:

    D: \ Videos \ My Movies \ Alles wat je nodig hebt om films te kijken \ Programma's om films te kijken \

    Dus de laatste opdracht in mijn geval ziet er als volgt uit:

    subst X: "D: \ Videos \ My Movies \ Alles wat je nodig hebt om films te kijken \ Programma's om films te kijken \"

    Om de ingevoerde opdracht uit te voeren, drukt u op de toets "Enter" op het toetsenbord. De virtuele schijf wordt gemaakt.

    Laten we nu naar Windows Verkenner gaan, naar het gedeelte "Deze computer" (of "Computer") gaan en daar de gemaakte virtuele schijf bekijken:

    Je kunt het per letter onderscheiden. Ik heb de letter "X" toegewezen aan de virtuele schijf. Als u nu deze virtuele schijf opent, bevinden we ons onmiddellijk in de map "Programma's voor het bekijken van films". Die. we namen en sneden nafig de helft van het pad naar de laatste map.

    Ter vergelijking ...

    Voorheen zag het pad naar de doelmap er als volgt uit:

    D: \ Videos \ My Movies \ Alles wat je nodig hebt om films te kijken \ Programma's om films te kijken \ Hoe MP4-films te openen \ Lijst met MP4-voorbeeldfilms \ Lijst met programma's om MP4 te openen \ Wat niet te doen bij het openen van MP4-bestanden

    Nadat de virtuele schijf is aangesloten op de map "Programma's voor het bekijken van films", ziet het pad naar de doelmap er als volgt uit:

    X: \ Hoe MP4-films te openen \ Lijst met voorbeeld MP4-films \ Lijst met programma's om MP4 te openen \ Wat niet te doen bij het openen van MP4-bestanden

    Voel je het verschil? Het pad is gehalveerd, omdat de stationsletter ons onmiddellijk naar de map in het midden van het pad leidt :) En aangezien het pad sterk is ingekort, hebt u nu waarschijnlijk de tekenbeperking in de namen van bestanden en mappen verwijderd en u kunt een bestand of map met een lange naam verwijderen!

    Nadat u het probleem met het bestand hebt opgelost, kunt u de virtuele schijf opnieuw verwijderen, zodat u geen last heeft van uw ogen in de verkenner.

    Open hiervoor de Windows-opdrachtprompt opnieuw en voer de opdracht in:

    Subst virtual_disk_letter / d

    In mijn geval is de stationsletter "X", dus de opdracht ziet er als volgt uit:

Toen ik nadacht over oplossingen voor het probleem, hoe een map of bestand met een lange naam te verwijderen, vond ik een andere optie op internet: verwijder het probleembestand met het programma Total Commander. Ik heb het geprobeerd, het werkte niet, dus ik heb deze methode niet aanbevolen :)) En de methode, zelfs als het voor iemand werkte, is eerlijk gezegd niet cool, omdat je een extra programma op je computer moet installeren om om slechts één bestand of mappen met een lange naam te verwijderen ...

Ik denk dat als een soortgelijk probleem zich voordoet, wat ik meer dan eens ben tegengekomen, een van de bovenstaande methoden je zeker zal helpen.

Dat is alles! Tot snel in de volgende artikelen ;)

Het is geen geheim dat Windows Verkenner, net als de meeste andere Windows-applicaties, inclusief PowerShell, niet kan werken met diep geneste bestandssysteemobjecten. padlengte van meer dan 260 tekens... Bovendien bestaat deze beperking alleen op toepassingsniveau en ondersteunt het NTFS-bestandssysteem zelf bestandspaden tot 32767 karakters.

Deze beperking wordt opgelegd door de bibliotheek Win32-API, en waarvan de maximale padlengte 260 tekens is ( MAX_PATH = 260). Over het algemeen wordt een pad gevormd uit de volgende elementen: + [path_from_256_characters] + [ ] , en de maximale lengte van één map / bestand in NTFS is 255 tekens in Unicode. Bij gebruik van unicode API-functies is het mogelijk om het pad te gebruiken naar 32767 karakters. Hierdoor kunnen veel programma's van derden (bijvoorbeeld dezelfde populaire bestandsbeheerders) VER en Totale commandant) verwerkt zonder enige moeite bestanden / mappen waarvan de lengte van het pad 260 tekens overschrijdt.

Advies... U kunt deze Win32 API-beperking omzeilen en met lange bestandsnamen werken door de UNC-padindeling te gebruiken, waarbij u het absolute pad naar het bestand specificeert met behulp van het padvoorvoegsel van de uitgebreide lengte. \\?\ ... Bijvoorbeeld, zoals dit \\?\ C: \ SomeLongPath \ LongNameFile.txt

Deze beperking is ook niet van toepassing wanneer gebruikers netwerktoegang hebben tot bestanden via het SMB-protocol (hierdoor zijn directorystructuren met lange paden niet ongebruikelijk op bestandsservers met gebruikersgegevens). De beheerder die deze server bedient, kan geen bestanden met lange paden beheren (verwijderen/verplaatsen) via de standaard Windows Verkenner-interface. Wanneer u probeert een bestand naar een dergelijke map te maken / kopiëren, verschijnt er een fout:

Bestemmingspad te lang... De bestandsnaam(en) zouden te lang zijn voor de doelmap. Je kunt de bestandsnaam inkorten en het opnieuw proberen, of een locatie proberen met een verkort pad

Andere programma's / dialoogvensters kunnen op hun eigen manier de aanwezigheid van de beperking aangeven.

Mee eens, het is grappig dat buiten het venster 2014, en we hebben het nog steeds over de limiet van 260 tekens op de maximale padlengte in Windows ... Maar het lijkt erop dat er in de nabije toekomst geen drastische veranderingen worden verwacht, en zelfs in de zeer verse technische preview van Windows 10 deze beperking bestaat nog steeds.

In dit artikel laten we u zien hoe u kunt werken met bestanden in Windows met paden langer dan 260 tekens. In dit geval is het onze taak om een ​​map met bestanden met lange padlengtes te verwijderen.

Wanneer u probeert een dergelijke map uit de verkenner te verwijderen, verschijnt er een foutmelding:

De bestandsnaam(en) zouden te lang zijn voor de doelmap. U kunt de bestandsnaam inkorten en het opnieuw proberen, of u kunt een locatie proberen met een verkort pad.

Powershell weet ook niet hoe het correct moet omgaan met mappen en bestanden met grote paden van meer dan 260 tekens. Wanneer u probeert een map met dergelijke bestanden te verwijderen (C: \ Install \ MS SQL 2012 Express Edition 64 bit \ verylongpath), verschijnt er een foutmelding:

Item verwijderen \ Verylongpath -Recurse

Remove-Item: het opgegeven pad, de bestandsnaam of beide zijn te lang. De volledig gekwalificeerde bestandsnaam moet kleiner zijn dan 260
tekens en de directorynaam mag niet langer zijn dan 248 tekens.
Op regel: 1 teken: 1
+ Item verwijderen \ Verylongpath -Recurse
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo: WriteError: (C: \ Install \ MS S ... it \ verylongpath: String), PathTooLongExcepti
Aan
+ FullyQualifiedErrorId: RemoveItemIOError, Microsoft.PowerShell.Commands.RemoveItemCommand

De eenvoudigste optie (die in feite wordt aangeboden in het venster met een fout) is om de naam van de bovenliggende mappen in te korten door de totale padlengte te verkleinen (maar niet altijd van toepassing).

Mklink / d c: \ install \ link “C: \ Install \ MS SQL 2012 Express Edition 64 bit \ verylongpath”

Een andere optie, die doet denken aan het werken met een symbolische link, is om de probleemmap toe te wijzen aan een virtuele schijf (in ons voorbeeld X :), waardoor ook de padlengte wordt verkort:

Subst X: "C: \ Install \ MS SQL 2012 Express Edition 64 bit \ verylongpath"

Nu kunt u werken met gegevens op de X:-schijf, waarvan de paden naar bestanden de limiet niet overschrijden. Nadat u klaar bent met werken, kunt u de virtuele schijf verwijderen:

Subst X: / d

Maar persoonlijk, vooral voor het verwijderen van gegevens in dergelijke situaties, hou ik van de mogelijkheden robocopy.exe die lange paden ondersteunt.

Met de optie / MIR, kan het robocopy-hulpprogramma een volledige kopie (spiegel) van de bronmap in het doel maken. En als de bronmap leeg is, worden ook alle gegevens in de doelmap gewist. Maak een lege map C: \ Installeren \ testen en gebruik het / MIR-argument, kopieer de inhoud van de testmap naar het doel (als de mapnaam spaties of Cyrillische tekens bevat, moet het pad tussen aanhalingstekens staan).

Robocopy / MIR C: \ Install \ test "C: \ Install \ MS SQL 2012 Express Edition 64 bit \ verylongpath"

Na het uitvoeren van de opdracht wordt de inhoud van de C: \ Install \ MS SQL 2012 Express Edition 64 bit \ verylongpath directory gewist (vervangen door de inhoud van de lege directory).

Daarom hebben we u vandaag enkele eenvoudige trucs laten zien die u kunt gebruiken bij het werken met mappen op bestandsservers die mappen bevatten met een padlengte van meer dan 260 tekens.

We hebben een lange titel, maar het geeft de essentie van het probleem aan, dat hier zal worden beschreven. Ik kwam onlangs in een niet-zo-goede situatie. Toen ik op de harde schijf sorteerde en deze opschoonde van onnodige bestanden, ontdekte ik dat een van de bestanden niet was verwijderd, en er verscheen een fout met de volgende inhoud: "Het bestandssysteem ondersteunt zulke lange bronbestandsnamen niet. Probeer het bestand te verplaatsen naar een map met een kortere padlengte, of geef een kortere bestandsnaam op en probeer het opnieuw."

Ik kon het bestand niet alleen niet verwijderen, maar ik kon de naam ook niet in een kortere naam veranderen. Voor velen lijkt dit een doodlopende weg, omdat blijkt dat het bestand niet wordt verwijderd.

In feite is het probleem heel eenvoudig en snel opgelost, en nu zal ik twee methoden beschrijven om het op te lossen, en welke je moet gebruiken, is aan jou.

Wat als het pad naar de bron te lang is, hoe verwijder je zo'n bestand?

Als er een bestand is dat niet wordt verwijderd vanwege een lange naam, zijn er verschillende manieren om het probleem op te lossen. Als een bestand bijvoorbeeld is genest in verschillende mappen, zeg vijf of zelfs tien mappen, die namen hebben van elk 10-20 tekens, dan kan dit de reden zijn om het bestand niet te verwijderen. Het punt is dat Windows geen bestanden ondersteunt met meer dan 260 tekens in hun naam. Als deze limiet wordt overschreden, verschijnt de fout die ik hierboven heb laten zien. Het aantal mappen dat een eigen naam heeft en de bestandsnaam zelf moet optellen tot minder dan 260 tekens. Het systeem heeft ook één functie: als deze limiet wordt overschreden, kunnen we mappen nog steeds hernoemen. Dit betekent dat u alle mappen moet hernoemen naar een korte naam, bijvoorbeeld een letter of een cijfer.


Dit probleem kan niet alleen verschijnen omdat je zo'n lange naam hebt gegeven. Dit overkwam mij toen ik besloot de bestanden van de sites van de server te downloaden en iets te doen. Omdat de bestanden niet langer nodig waren, heb ik de hele map met de sitebestanden verwijderd, maar het bleek dat het een bestand met een zeer lange naam bevatte, plus de namen van de mappen, en hierdoor kon ik niet alles verwijderen deze.

Methode twee zal helpen als de eerste mislukt. Het is een feit dat niet alle mappen die naar een bestand met een lange naam leiden, hernoemd kunnen worden en dat de bestandssysteemfout nog steeds optreedt. Vervolgens kunt u een virtuele schijf maken met behulp van een van de submappen die naar het niet-verwijderde bestand leiden. Nu laat ik je zien hoe je dit doet.

We openen de opdrachtregel. Om dit te doen, drukt u op de combinatie Win + R en voert u het commando in cmd... U kunt met de rechtermuisknop op het menu Start klikken (of de sneltoets Win + X) en daar Opdrachtprompt selecteren.

Nu schrijf je een commando als dit, dat een virtuele schijf voor ons zal maken:

U moet een stationsletter kiezen die niet door anderen wordt ingenomen. De systeempartitie wordt meestal aangegeven met de letters C, en de tweede partitie, als D of E, dan kiezen we een andere.

Het pad naar de map moet vanaf de schijf worden opgegeven. Als je het moeilijk vindt, open dan de map die als virtuele schijf zal fungeren en kopieer het pad ernaartoe in de verkenner bovenaan.

Mijn opdracht ziet er als volgt uit:

Als we naar Deze computer gaan, zou je daar een schijf moeten zien met de letter die we eraan hebben toegewezen vanaf de opdrachtregel. Het pad naar het bestand wordt dus met bijna de helft verminderd, wat betekent dat de totale lengte van tekens minder dan 260 tekens kan zijn. Nu kunt u proberen het niet-verwijderbare te verwijderen.


Om de virtuele schijf te verwijderen, moet u de opdracht invoeren:

sub DriveLetter / d

Total Commander gebruiken

Op internet ontdekte ik een methode waarmee je niet-verwijderbare bestanden kunt verwijderen. Het nadeel hiervan is natuurlijk dat je extra software op je computer moet installeren, en niet iedereen zal dit willen doen. In ieder geval laat ik deze methode hier, die het ineens wil gebruiken.

Download en installeer het programma. Ga naar het tabblad "Bestand" klik op de sectie "Wijzig attributen"... Er verschijnt een venster waarin we de kauwen van alle attributen verwijderen. Als er geen vinkje bovenaan tegenover het item staat "Inhoud directory verwerken"- we kiezen. Nu proberen we een bestand met een lange naam uit hetzelfde programma te verwijderen.


We gebruiken de archiver 7-Zip

Voor dit geval hebben we een 7-Zip archiver nodig. Klik met de rechtermuisknop op de homedirectory en wijs met de muis naar de partitie "7-Zip" en selecteer het item "Toevoegen aan archief".

Er verschijnt een venster waarin u slechts één selectievakje hoeft aan te vinken "Verwijder bestanden na compressie"... Klik vervolgens op OK.

Een archief van al deze dingen wordt op het bureaublad gemaakt en mappen met een lang bestand worden eenvoudigweg verwijderd. U kunt het archief zelf zonder problemen verwijderen.

We hebben dergelijke manieren overwogen om de fout van het niet-verwijderde bestand te herstellen. Misschien heb je meer mogelijkheden hoe je dit kunt doen?