Sto solo citando un trucco che non vedo ancora menzionato qui.
Prendi questo file ad esempio:
C:\Folder1\Really Long Path\Such Recursion\So Deep\Wow\Still Going\I will run out of ideas soon\I have organizational problems\Obsessive compulsive subdirectory disorder\Here is a guid for no good reason\936DA01F-9ABD-4d9d-80C7-02AF85C822A8\Almost there\Tax Returns\2013\2013_tax_return.pdf
Questo percorso completo del file è lungo 290 caratteri. La shell (Windows Explorer) e la maggior parte delle utility da riga di comando probabilmente non ti permetteranno di toccarlo.
Utilizzare il subst
comando in questo modo:
subst X: "C:\Folder1\Really Long Path\Such Recursion\So Deep\Wow"
Ora puoi accedere (ed eliminare, spostare, ecc.) Così il file:
X:\Still Going\I will run out of ideas soon\I have organizational problems\Obsessive compulsive subdirectory disorder\Here is a guid for no good reason\936DA01F-9ABD-4d9d-80C7-02AF85C822A8\Almost there\Tax Returns\2013\2013_tax_return.pdf
E ora quel nome di file ha solo ~ 235 caratteri o giù di lì, quindi non incontrerai più i problemi "Il nome del file è troppo lungo".
Nell'API di Windows, esiste una costante nota come MAX_PATH
. MAX_PATH è di 260 caratteri. Il file system NTFS supporta effettivamente percorsi di file con un massimo di 32.767 caratteri. E puoi ancora usare nomi di percorsi lunghi 32.767 caratteri accedendo alle versioni Unicode (o "larghe") delle funzioni dell'API di Windows e anche prefissando il percorso con \\?\
.
MAX_PATH
è stato incastonato nella pietra molto tempo fa nel mondo di Windows. Penso che abbia qualcosa a che fare con gli standard ANSI al momento ... ma è una di quelle cose che è molto difficile per Microsoft cambiare ora, poiché ora abbiamo migliaia di programmi e applicazioni, tra cui alcuni scritti da Microsoft stessi, che usano MAX_PATH
e fallirebbe in strani nuovi modi se la costante venisse improvvisamente cambiata. (Buffer overflow, corruzione dell'heap, ecc.)