Come risolvere il problema ‘Filename Is Too Long’ in Windows

Se avete mai visto questo problema, probabilmente è stata una semplice correzione per voi. Se avete visto questo errore più di due volte, allora sapete anche che può essere un problema complesso da risolvere a volte.

Speriamo che vi imbattiate solo nella varietà di soluzioni facili, ma vi prepareremo anche per quelle meno facili, ma che funzionano di sicuro.

Perché la lunghezza del nome del file è un problema in Windows?

C’è una lunga storia di problemi legati alla lunghezza dei nomi dei file per sistemi operativi come Windows. C’è stato un tempo in cui non si potevano avere nomi di file più lunghi di 8 caratteri più un’estensione di 3 caratteri. Il meglio che si poteva fare era qualcosa come myresume.doc. Questa era una restrizione imposta dal design del file system.

Le cose sono migliorate con l’uscita delle nuove versioni di Windows. Siamo passati da un file system vecchio e limitato a qualcosa chiamato New Technology File System (NTFS). NTFS ci ha portato ad un punto in cui un nome di file poteva essere lungo 255 caratteri, e la lunghezza del percorso del file poteva potenzialmente arrivare a 32.767 caratteri. Quindi come possiamo avere nomi di file troppo lunghi?

Windows ha cose conosciute come variabili di sistema. Queste sono variabili su cui Windows si basa per funzionare, perché Windows saprà sempre cosa significano le variabili e dove sono, anche quando stiamo spostando bit e byte dappertutto. La variabile di sistema MAX_PATH è quella che limita i nomi dei file e i percorsi dei file a meno di 260 caratteri.

Essendo una variabile, si potrebbe pensare di poterla cambiare. No, non dovremmo. Sarebbe come tirare un filo da un maglione. Non appena una variabile di sistema cambia, le altre variabili di sistema e i componenti che dipendono da esse iniziano a disfarsi.

Come lo sistemiamo, allora?

La soluzione facile

Se siete fortunati, avrete l’errore e saprete esattamente il nome del file che sta causando il problema. O almeno dove trovare il file. Forse avete un nome di file che assomiglia a qualcosa come:

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

È ovvio chi è il colpevole in questo caso. Trovate il file in Windows Explorer, o File Explorer come si chiama in Windows 10, cliccate una volta su di esso, premete F2 per rinominarlo, e cambiate quello stupido nome di file in qualcosa di più ragionevole. Problema risolto.

Le soluzioni meno facili

Non è sempre così facile risolvere questo problema. A volte potresti non essere in grado di cambiare i nomi dei file o delle directory per qualsiasi motivo.

Le seguenti soluzioni faranno al caso vostro. Non sono difficili da fare.

Spostare, eliminare o copiare file o directory usando PowerShell

A volte si ottiene un errore quando si cerca di spostare, eliminare o copiare directory dove il numero di caratteri per il percorso del file è più di 260.

Nota che le parole directory e cartella sono intercambiabili. Useremo “directory” in futuro. I seguenti cmdlets di PowerShell possono essere usati anche sui file.

Per esempio il percorso del file assomiglia a:

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

Questo percorso del file è lungo 280 caratteri. Quindi non possiamo copiare la directory da lì a qualche altro posto con il normale metodo di copia-incolla. Otteniamo l’errore Destination Path Too Long.

Immaginiamo che, per qualsiasi motivo, non possiamo rinominare le directory in cui il file è annidato. Cosa facciamo?

Aprire PowerShell. Se non hai ancora usato PowerShell, goditi il nostro articolo Using PowerShell for Home Users – A Beginner’s Guide. Puoi comunque fare i prossimi passi senza leggere l’articolo.

Quando PowerShell si apre, sarai alla radice della tua directory utente. Segui la procedura assumendo che C:\Users\guymc sia la tua directory utente.

La directory chiamata Questo è dentro la directory Documenti. Per spostarci nella directory Documenti, usiamo il comando DOS cd Documenti.

Vedrai il prompt cambiare in C:\Users\guymc\Documents. Questo è un bene. Stiamo lavorando più vicino alle directory che renderà le cose più facili.

Copy Directory Using Copy-Item

Vogliamo copiare la directory This e il suo contenuto in ThatNewFolder. Usiamo il cmdlet PowerShell Copy-Item con i parametri -Destination e -Recurse.

-Destinazione dice a PowerShell dove vogliamo che la copia sia. -Recurse dice a PowerShell di copiare tutti gli elementi all’interno nella destinazione. La copia lascia gli originali dove sono e ne crea di nuovi nella destinazione.

Copy-Item This -Destination ThatNewFolder -Recurse

Move Directory Using Move-Item

Diciamo che vogliamo spostare la directory This, e tutte le directory e i file in essa, in ThatNewFolder. Lo spostamento non lascia l’originale al suo posto.

Possiamo usare il cmdlet PowerShell Move-Item con i parametri -Path e -Destination. -Path definisce l’elemento che vogliamo spostare e -Destination dice a PowerShell dove lo vogliamo.

Il cmdlet metterà This dentro ThatNewFolder. Sposterà anche tutto ciò che è all’interno della directory This. Move-Item può essere usato per spostare file o directory, e funziona indipendentemente dal percorso del file o dalla lunghezza del nome del file.

Move-Item -Path This -Destination ThatNewFolder

Per essere sicuri che funzioni, usate il comando cd ThatNewFolder per entrare in ThatNewFolder. Poi usa il comando dir per elencare le directory in ThatNewFolder. Vedrete che la directory This è lì dentro.

Eliminare la directory usando Remove-Item

Se vogliamo eliminare la directory This, e tutto ciò che contiene, usiamo il cmdlet Remove-Item.

Il cmdlet Remove-Item ha una certa sicurezza incorporata che rende difficile eliminare una directory con cose al suo interno. Nel nostro esempio, sappiamo di voler cancellare tutto, quindi useremo i parametri -Recurse per fargli cancellare tutto quello che c’è dentro e -Force per farglielo fare senza chiederci se siamo sicuri per ogni elemento all’interno.

Siate avvertiti! Recuperare qualsiasi cosa cancellata in questo modo sarebbe estremamente difficile. Puoi provare i metodi in Come recuperare file cancellati accidentalmente, ma non aspettarti molto.

Remove-Item This -Recurse -Force

Puoi usare di nuovo il comando dir per assicurarti che sia andato.

Fare in modo che Windows 10 accetti percorsi di file lunghi

Se sai che userai ripetutamente percorsi di file lunghi e nomi di file lunghi, è più facile far lavorare Windows per te. Non ha senso usare PowerShell per fare il lavoro ogni giorno.

Ci sono due modi per farlo. Uno è per gli utenti di Windows 10 Home e l’altro è per gli utenti di Windows 10 Pro o Enterprise. Questi metodi potrebbero funzionare per Windows 8.1 o precedenti, ma non possiamo garantirlo.

Far accettare a Windows 10 Home i percorsi dei file lunghi

Per far accettare a Windows 10 Home i percorsi dei file lunghi, dobbiamo aprire l’Editor del registro. Se non avete mai lavorato nell’Editor del Registro di sistema, siate prudenti. Cancellare o cambiare accidentalmente le cose qui dentro può impedire a Windows di funzionare completamente.

Fate sempre un backup del vostro registro prima di fare qualsiasi modifica. Scopri tutto quello che c’è da sapere su questo nella nostra Guida definitiva al backup e al ripristino del registro di Windows.

Una volta aperto l’Editor del Registro, e fatto il backup, naviga fino alla posizione HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem e trova la chiave LongPathsEnabled.

Fai doppio clic su LongPathsEnabled. Nel campo Value data:, assicurati che ci sia il numero 1. Fai clic su OK per confermare la modifica.

Esci dall’Editor di registro e dovresti essere in grado di lavorare con pazzi percorsi di file lunghi ora.

Fai in modo che Windows 10 Pro o Enterprise accetti percorsi di file lunghi

Per permettere a Windows 10 Pro o Enterprise di usare percorsi di file lunghi, useremo l’Editor criteri di gruppo. È uno strumento che ci permette di impostare le politiche su come Windows opera a livello di computer e di utente.

Abbiamo diversi articoli sull’uso dei criteri di gruppo per fare cose come disabilitare o abilitare le opzioni di Internet Explorer, o aggiungere un messaggio alla schermata di accesso.

Aprire l’Editor criteri di gruppo andando nel menu Start e digitando gpedit. Il primo risultato dovrebbe essere Modifica criteri di gruppo. Fai doppio clic su quello.

Una volta aperto l’Editor dei criteri di gruppo, vai a Configurazione computer > Modelli amministrativi > Sistema > Filesystem. Lì vedrai la policy Enable Win32 long paths.

Fai doppio clic su di essa per modificare l’impostazione della policy. Cambiala da Disabilitato a Abilitato, quindi fai clic sul pulsante OK per confermare la modifica.

Il criterio potrebbe non avere effetto immediato. Puoi forzare l’aggiornamento della policy di gruppo, però.

Questo è tutto

Ci sono altri modi per lavorare intorno a nomi di file lunghi e percorsi di file, ma quelli che abbiamo visto qui sono i metodi più semplici ed efficaci.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.