Nome del file o estensione troppo lunga in Windows

mercoledì 28 maggio 2014 alle 28:05 | Pubblicato su Diario | Lascia un commento

Evidentemente non potrò mai essere un buon programmatore, perché non so usare gli “IDE”; ieri ho provato a giocchicchiare un po’ con Netbeans 7.3 e cercando di aggiungere delle librerie al progetto ho fatto evidententemente qualcosa di sbagliato, tant’è che ho dovuto uccidere il programma perché non ne usciva più. Stamattina ho deciso di riprovarci ed ho cominciato con il fare pulizia, trovandomi però con un bizzarro problema: all’interno della directory dove dovevano stare le librerie Netbeans aveva creato ricorsivamente decine, forse centinaia di directory innestate con lo stesso nome, una cosa tipo C:\progetto\lib\lib\lib\lib\lib\…

Bisogna sapere che quando il percorso assoluto di un file in windows supera i 260 caratteri windows non è più in grado di gestirlo e cercando di rimuoverlo si ottiene un errore tipo quello che da il titolo a questo post, sia provando da Explorer che da linea di comando. C’è da chiedersi perché windows ne permetta la creazione ma poi non sia capace di gestirli… Lo stesso problema può capitare con un nome di file troppo lungo, in questo caso però forse si riesce a fare la rinomina, non ne sono sicuro.

Ho iniziato allora dopo tentativi da linea di comando svariati a cercare su internet ma le soluzioni trovate facendo una ricerca per il testo dell’errore in italiano non funzionavano per la mia situazione, quindi ho provato a fare la ricerca traducendo (alla meno peggio) in inglese il testo del messaggio, quindi con i termini “filename or extension too long” alla fine sono arrivato a questa pagina (parrebbe un forum ufficiale microsoft, in precedenza ero capitato sullo stesso sito ma su una discussione in italiano dove non si fornivano soluzioni..). Qui si propone come soluzione l’uso di Cygwin e del comando “rm”, io ho provato con il comando rm che trovo gia installato su Windows 7, senza aver mai installato Cygwin ma non funziona, stesso errore, prima di provare allora a installare Cygwin ho continuato a scorrere la discussione fino alla soluzione proposta da “Augustin Botana” (avrei volentieri messo il link alla singola risposta, ma evidentemente in MS non conoscono queste feature così avanzate …) il quale spiega di avere avuto lo stesso problema con netbeans, mi permetto di citare il suo intervento:

Hi.

I had the same problem but with netbeans which built recursive folders with the root given name. I used the name “mermelada” under my c:\temp\ folder.

I had thousands (at least) of c:\temp\mermelada\mermelada…. And so and not able to delete because the windows “name too long” message.

I used the inspiration of another user of this issue and made a recupera2.bat with the following content

ren c:\temp\mermelada\mermelada\mermelada x

move c:\temp\mermelada\mermelada\x c:\temp\mermelada

rd c:\temp\mermelada\mermelada

ren c:\temp\mermelada\x mermelada

recupera2.bat

In a DOS window, I ran c:\recupera2.bat, leaved alone for 2 minutes and voila!… just a empty “mermalada” folder  ready to be destroyed.

Good luck!

 

Ecco, la soluzione è geniale, uno script ricorsivo, l’ho adattato al mio caso ed ha funzionato benissimo

Lascia un commento »

RSS feed for comments on this post. TrackBack URI

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

Crea un sito o un blog gratuitamente presso WordPress.com.
Entries e commenti feeds.

%d blogger cliccano Mi Piace per questo: