Het probleem 'Bestandsnaam is te lang' oplossen in Windows

Als je dit probleem ooit hebt gezien, was het waarschijnlijk een eenvoudige oplossing voor je. Als je deze fout meer dan twee keer hebt gezien, weet je ook dat het soms een ingewikkeld probleem kan zijn om op te lossen.

Laten we hopen dat je alleen de easy fix-variant tegenkomt, maar we zullen je ook voorbereiden op de minder gemakkelijke, gegarandeerd werkende fixes.

Waarom is de lengte van de bestandsnaam zelfs een probleem in Windows?(Why Is Filename Length Even An Issue In Windows?)

Er is een lange geschiedenis van bestandsnaamlengtes die een probleem vormen voor besturingssystemen zoals Windows . Er was een tijd dat je geen bestandsnamen kon hebben die langer waren dan 8 tekens plus een bestandsextensie van 3 tekens. Het beste wat je kon doen was zoiets als myresume.doc . Dit was een beperking door het ontwerp van het bestandssysteem.

Het werd beter toen er nieuwe versies van Windows uitkwamen. We gingen van een oud, beperkt bestandssysteem naar iets dat het New Technology File System ( NTFS ) wordt genoemd. NTFS bracht ons op een punt waar een bestandsnaam 255 tekens lang zou kunnen zijn, en de lengte van het bestandspad zou tot 32.767 tekens kunnen oplopen. Dus hoe kunnen we bestandsnamen hebben die te lang zijn?

Windows heeft dingen die bekend staan ​​als systeemvariabelen. Dit zijn variabelen waarop Windows vertrouwt om te functioneren, omdat Windows altijd weet wat de variabelen betekenen en waar ze zijn, zelfs als we bits en bytes overal heen verplaatsen. De systeemvariabele MAX_PATH is degene die bestandsnamen en bestandspaden beperkt tot minder dan 260 tekens.

Omdat het een variabele is, zou je denken dat we het zouden kunnen veranderen. Nee, dat zouden we niet moeten doen. Het zou zijn alsof je een draad uit een trui trekt. Zodra een systeemvariabele verandert, beginnen andere systeemvariabelen en daarvan afhankelijke componenten te ontrafelen.

Hoe lossen we het dan op?

De gemakkelijke oplossing(The Easy Fix)

Als je geluk hebt, krijg je de foutmelding en weet je precies welke bestandsnaam het probleem veroorzaakt. Of in ieder geval waar het bestand te vinden is. Misschien heb je een bestandsnaam die er ongeveer zo uitziet:

C:\User\guymc\Documents\My Resumesresumewithanamesolongthatitcausesproblemsandbecomespartofsomeguysarticleonthewebhowdoyoulikemenow.docx

Het is duidelijk wie in dit geval de dader is. Zoek het bestand in Windows Verkenner(Windows Explorer) , of Verkenner(File Explorer) zoals het in Windows 10 wordt genoemd , klik er eenmaal op, druk op F2 om het te hernoemen en verander die gekke bestandsnaam in iets redelijkers. Probleem(Problem) opgelost.

De minder gemakkelijke oplossingen(The Less Easy Fixes)

Het is niet altijd zo eenvoudig om dit probleem op te lossen. Soms kunt u om welke reden dan ook de namen van bestanden of mappen niet wijzigen.

De volgende oplossingen zullen het voor u doen. Ze zijn niet moeilijk om te doen.

Verplaats(Move) , verwijder(Delete) of kopieer bestanden of mappen met PowerShell(Or Copy Files Or Directories Using PowerShell)

Soms krijg je een foutmelding bij het verplaatsen, verwijderen of kopiëren van mappen waarvan het aantal tekens voor het bestandspad meer dan 260 is.

Merk op dat de woorden directory en folder onderling uitwisselbaar zijn. We zullen voortaan 'directory' gebruiken. De volgende PowerShell -cmdlets kunnen ook op bestanden worden gebruikt.

Misschien ziet het bestandspad er ongeveer zo uit:

C:\Users\guymc\Documents\This\Is\Exactly\The\Precise\Directory\Path\That\I\Need\To\Have\To\Keep\My\Files\Sorted\In\A\Manner\That\Makes\Sense\To\Me\So\Lets\Pretend\This\Is\An\Actual\Filepath\That\You\Might\Also\Have\On\Your\Windows\Computer\And\Not\Over\Think\It\Document.docx

Dat bestandspad is 280 tekens lang. Dus we kunnen de map daar niet naar ergens anders kopiëren met de normale kopieer-plakmethode. We krijgen de foutmelding Destination Path Too Long .

Laten we aannemen dat we om welke reden dan ook de mappen waarin het bestand is genest, niet kunnen hernoemen. Wat doen we?

Open PowerShell . Als u PowerShell nog niet hebt gebruikt, kunt u genieten van ons artikel PowerShell gebruiken voor thuisgebruikers - een beginnershandleiding(Using PowerShell for Home Users – A Beginner’s Guide) . U kunt de volgende stappen echter uitvoeren zonder het artikel te lezen.

Wanneer PowerShell wordt geopend, bevindt u zich in de hoofdmap van uw gebruikersmap. Volg(Follow) mee in de veronderstelling dat C:\Users\guymc uw gebruikersdirectory is.

De map met de naam Dit(This) bevindt zich in de map Documenten(Documents) . Om naar de map Documenten(Documents) te gaan , gebruiken we het DOS- commando cd Documents

U ziet de prompt veranderen in C:\Users\guymc\Documents . Dat is goed. We werken dichter bij de mappen, wat de zaken gemakkelijker zal maken.

Kopieer Directory met behulp van Copy-Item

We willen de map This en de inhoud ervan kopiëren naar ThatNewFolder . Laten we de Power shell-cmdlet Copy-Item gebruiken met de para meters -Destination en -Recurse .

-Destination vertelt PowerShell waar we de kopie willen hebben. -Recurse vertelt PowerShell om alle items naar de bestemming te kopiëren. Kopiëren laat de originelen waar ze zijn en maakt alle nieuwe op de bestemming.

Copy-Item This -Destination ThatNewFolder -Recurse

Map verplaatsen met Move-Item

Laten we zeggen dat we de map This, en alle mappen en bestanden erin, naar ThatNewFolder willen verplaatsen . Verplaatsen laat het origineel niet op zijn plaats.

We kunnen de Power shell-cmdlet Move-Item gebruiken met de para meters -Path en -Destination . -Path definieert het item dat we willen verplaatsen en -Destination vertelt PowerShell waar we het willen hebben. 

De cmdlet zal This in ThatNewFolder plaatsen(ThatNewFolder) . Het zal ook alles verplaatsen dat zich in de map Deze map bevindt. Move-Item kan worden gebruikt om bestanden of mappen te verplaatsen en het werkt ongeacht het bestandspad of de lengte van de bestandsnaam.

Move-Item -Path This -Destination ThatNewFolder

Om er zeker van te zijn dat het werkte, gebruik je de opdracht cd ThatNewFolder om in ThatNewFolder te komen . Gebruik vervolgens de opdracht dir om de mappen in ThatNewFolder weer(ThatNewFolder) te geven . Je zult zien dat de map Deze map daarin staat.

Directory verwijderen met Remove-Item

Als we de map This en alles erin willen verwijderen, gebruiken we de cmdlet Remove-Item .

De cmdlet Remove-Item heeft een ingebouwde beveiliging die het moeilijk maakt om een ​​map met dingen erin te verwijderen. In ons voorbeeld weten we dat we alles willen verwijderen, dus we gebruiken de parameters -Recurse om alles binnenin te verwijderen en -Force om dat te laten doen zonder ons te vragen of we zeker zijn van elk item erin.

Wees gewaarschuwd! Het zou buitengewoon moeilijk zijn om alles te herstellen dat op deze manier is verwijderd. U kunt de methoden proberen in Per ongeluk verwijderde bestanden herstellen , maar verwacht niet veel.

Remove-Item This -Recurse -Force

U kunt het dir-commando opnieuw gebruiken om te controleren of het verdwenen is.

Laat Windows 10 lange bestandspaden accepteren(Make Windows 10 Accept Long File Paths)

Als u weet dat u herhaaldelijk lange bestandspaden en lange bestandsnamen gaat gebruiken, is het gemakkelijker om Windows voor u te laten werken. Het heeft geen zin om PowerShell te gebruiken om het werk elke dag te doen.

Er zijn twee manieren waarop we dit kunnen doen. De ene is voor Windows 10 Home -gebruikers en de andere is voor Windows 10 Pro- of Enterprise- gebruikers. Deze methoden werken mogelijk voor Windows 8.1 of eerder, maar dat kunnen we niet garanderen.

Laat(Make) Windows 10 Home lange bestandspaden accepteren(Home Accept Long File Paths)

Om Windows 10 Home lange bestandspaden te laten accepteren, moeten we de Register-editor(Registry Editor) openen . Wees voorzichtig als u nog niet eerder in de Register-editor hebt gewerkt. (Registry Editor)Het per ongeluk verwijderen of wijzigen van dingen hier kan ervoor zorgen dat Windows niet meer volledig werkt.

Maak altijd een back-up van uw register voordat u wijzigingen aanbrengt. Leer alles wat u hierover moet weten in onze Ultieme gids voor het maken van back-ups en het herstellen van het Windows-register( Ultimate Guide to Backing Up and Restoring the Windows Registry) .

Nadat u de Register - editor hebt geopend en uw back-up hebt gemaakt, navigeert u naar de locatie HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem en zoekt u de sleutel LongPathsEnabled .

Dubbelklik op LongPathsEnabled . Zorg ervoor dat in het veld Waardegegevens: nummer (Value data:)1 staat. Klik op OK om de wijziging door te voeren.

Sluit de Register-editor(Registry Editor) af en u zou nu met gekke lange bestandspaden moeten kunnen werken.

Laat(Make) Windows 10 Pro of Enterprise lange bestandspaden accepteren(Pro Or Enterprise Accept Long File Paths)

Om Windows 10 Pro of Enterprise toe te staan ​​lange bestandspaden te gebruiken, gaan we de Groepsbeleid-editor(Group Policy Editor) gebruiken . Het is een tool waarmee we beleid kunnen instellen over hoe Windows werkt op computer- en gebruikersniveau.

We hebben verschillende artikelen over het gebruik van groepsbeleid om dingen te doen zoals het in- of uitschakelen van Internet Explorer-opties( disabling or enabling Internet Explorer options) of het toevoegen van een bericht aan het aanmeldingsscherm( adding a message to the logon screen) .

Open de Groepsbeleid-editor(Group Policy Editor) door naar het menu Start te gaan en (Start)gpedit in te typen . Het bovenste resultaat zou Groepsbeleid bewerken(Edit group policy) moeten zijn . Dubbelklik daarop.

Zodra de Groepsbeleid-editor(Group Policy Editor) is geopend, navigeert u naar Computer Configuration > Administrative Templates > System > Filesystem . Daar zie je het beleid Enable Win32 long paths .

Dubbelklik erop om de beleidsinstelling te bewerken. Wijzig het van Uitgeschakeld(Disabled ) naar Ingeschakeld(Enabled) en klik vervolgens op de knop OK om de wijziging door te voeren. 

Het beleid treedt mogelijk niet meteen in werking. U kunt het groepsbeleid echter forceren om bij te werken( force the group policy to update) .

Dat is het(That’s It)

Er zijn een aantal andere manieren om lange bestandsnamen en bestandspaden te omzeilen, maar wat we hier hebben doorgenomen, zijn de eenvoudigste, meest effectieve methoden.



About the author

Ik ben een webontwikkelaar met ervaring in Firefox en Google Docs. Ik heb een diploma in bedrijfskunde van de Universiteit van Florida. Mijn vaardigheden omvatten: website-ontwikkeling, contentmanagementsysteem (CMS), data-analyse en gebruikersinterfaceontwerp. Ik ben een ervaren consultant die uw team kan helpen bij het bouwen van effectieve websites en applicaties.



Related posts