it.phhsnews.com


it.phhsnews.com / Perché Windows segnala che questa cartella è troppo lunga per copiare?

Perché Windows segnala che questa cartella è troppo lunga per copiare?


Se lavori con Windows abbastanza a lungo, specialmente con cartelle e file con nomi lunghi, ti imbatterai in un bizzarro errore : Windows segnalerà che il percorso della cartella o il nome del file è troppo lungo per spostarsi in una nuova destinazione o addirittura eliminarlo. Qual è l'affare?

Hey How-To Geek!

Così l'altro giorno stavo riorganizzando alcuni file sul mio computer, creando cartelle, quel tipo di cose. Quindi, quando stavo spostando alcuni file in una cartella, ricevo un messaggio, affermando che il percorso della cartella risultante sarebbe troppo lungo. Ero confuso. So che ogni singolo SO da quando DOS supporta Long Filenames, eppure Windows sostiene che il percorso sia troppo lungo? Perché succede?

Cordialmente,

Mr. Disorganizzato

Il problema che stai incontrando è uno sfortunato incrocio di due sistemi che, in casi come questo, genera un errore. Per capire esattamente da dove proviene l'errore, dobbiamo scavare nella storia di Long Filenames (LFN) e in che modo Windows interagisce con loro prima di addentrarci in soluzioni. Sono stati introdotti

Long Filenames, attraverso l'architettura MS-DOS sottostante , in Windows 95. Il nuovo sistema LFN consentiva nomi di file e directory con un massimo di 255 caratteri. Si trattava di una gradita espansione del precedente sistema di nomi di file, solitamente chiamato filenaming 8.3 poiché il nome era limitato a otto caratteri e un'estensione di tre cifre, ma anche noto come Short Filename (SFN). Come puoi immaginare, all'epoca c'erano ancora molte app basate su DOS e c'erano pochissimi mal di testa che cercavano di far sì che i nuovi LFN e gli SFN legacy giocassero bene l'uno con l'altro. Se hai mai incontrato un vecchio dischetto o un CD-ROM con file stranamente troncati (come abcdef ~ 1.txt) quel nome di file è stato abbattuto da qualche SFN-usando l'applicazione legacy da un LFN più lungo e non supportato (come abcdefghijk. txt).

Siamo molto lontani dalla metà degli anni '90, tuttavia, e l'intera faccenda dei Long Filename è (per la maggior parte) saldamente risolta. Se stai utilizzando una versione di Windows degli ultimi 10 anni, probabilmente non avrai mai nemmeno incontrato un conflitto di lunghezza del nome del file come in passato ci siamo imbattuti nei giorni DOS / Windows 95. Detto questo, ci imbattiamo ancora nel singhiozzo, come hai scoperto con il tuo progetto di pulizia del disco. Ma perché? Se il sistema Long Filename di Windows supporta cartelle e nomi di file fino a 255 caratteri per componente, a quale parete stai andando? Non possiamo incolpare NTFS (il filesystem utilizzato dalla maggior parte delle moderne macchine Windows) poiché NTFS supporterà un concatenamento di cartelle e nomi di file fino a una lunghezza totale del percorso di 32.767 caratteri. Questo supera di gran lunga la tipica struttura di directory di cui la maggior parte degli utenti avrebbe mai avuto bisogno.

Dove tutto cade a pezzi è una restrizione artificiale Windows si sovrappone al sistema LFN / NTFS: la variabile MAX_PATH. La variabile MAX_PATH specifica che una struttura di directory completa in Windows non può superare i 260 caratteri totali, inclusa la lettera di unità, i due punti, il backslash e il gioco nullo alla fine. Quindi hai solo un potenziale MAX_PATH reale di 256 caratteri, ad esempio C: your-256-character-path .

Quindi quello che è successo quando stavi pulendo il tuo computer è che avevi una directory con un percorso già lungo (o perché i nomi delle cartelle erano lunghi, i nomi dei file erano lunghi o entrambi) e quando si tentava di spostare una o più di quelle directory in un'altra directory con un percorso lungo, la lunghezza totale del percorso il nome ha superato il limite di 260 caratteri imposto dalla variabile MAX_PATH.

Ora potresti pensare "Ah-hah! Cambiamo semplicemente la variabile MAX_PATH e risolviamo il problema! "Ahimè, non è così semplice. Non solo la variabile MAX_PATH è essenzialmente codificata in Windows, ma anche se hai affrontato l'enorme seccatura di cambiarlo, finiresti per rompere così tanto che non ne varrebbe la pena. Troppe applicazioni si aspettano che la variabile del percorso sia ciò che Windows ha specificato da tempo. Non possiamo andare in giro cambiandolo senza creare un gran casino.

Dove ti lascia? Bene, la soluzione più semplice è semplicemente modificare i dati del percorso. Ad esempio, se hai un sacco di articoli salvati in cui l'applicazione / l'estensione che hai usato per salvarli dal web ha creato una directory che era il titolo completo dell'articolo + il lead dell'articolo, e quindi il nome del file stesso è il titolo completo dell'articolo + lead dell'articolo, sarebbe davvero semplice colpire o superare MAX_PATH con un solo salvataggio. Modificare questi enormi titoli di cartelle e articoli in una dimensione più ragionevole è un modo semplice per risolvere il problema.

Se hai un numero enorme di file con un percorso lungo e non vuoi modificarli tutti (o se si desidera eliminare una tonnellata di vecchie directory troppo lunghe per essere gestite da Windows quando è limitato dalla variabile MAX_PATH), esiste una riga di comando che funziona. Anche se Windows è limitato dalla variabile MAX_PATH, i tecnici di Windows hanno realizzato che ci sarebbero state situazioni in cui gli utenti avrebbero dovuto occuparsi di nomi di percorso più lunghi. In quanto tale, l'API di Windows ha una funzione per gestire percorsi estremamente lunghi.

Per sfruttare questa API e utilizzare gli strumenti della riga di comando sulle tue ingombranti cartelle / nomi di file, devi semplicemente aggiungere il nome della directory con un pochi personaggi in più. Ad esempio, se hai una struttura di directory enorme che desideri eliminare (ma hai ricevuto un errore a causa della lunghezza del percorso quando lo hai provato), puoi cambiare il comando da:

rmdir c: documents some-really -super-long-folder-name-scheme-scheme

a:

rmdir \? c: documents schema-nome-cartella-vero-super-lungo-lungo

La chiave è aggiunta della porzione\? prima dell'inizio del percorso del file; ciò indica a Windows di ignorare le limitazioni imposte dalla variabile MAX_PATH e di interagire con il percorso appena fornito come fornito / compreso direttamente dal file system sottostante (che può chiaramente supportare un percorso più lungo). Come sempre, fai attenzione al prompt dei comandi per evitare di eliminare accidentalmente i file o le directory che intendi lasciare intatti.

Se la nostra panoramica di questo problema ti incuriosisce, consulta questo articolo dalla libreria Microsoft Developer Network, Naming Files, Percorsi e Namespace, per ulteriori informazioni su cosa sta succedendo sotto il cofano.


Hai una domanda tecnica urgente? Mandaci una mail a e faremo del nostro meglio per rispondere.


I dischi rigidi USB esterni sono a rischio di condensa interna?

I dischi rigidi USB esterni sono a rischio di condensa interna?

Mentre la maggior parte di noi non ha bisogno di impacchettare i dischi rigidi esterni con noi ovunque andiamo, ci sono alcune persone che potrebbero Bisogna portarli ovunque vadano. Con questo in mente, le differenze di temperatura percepibili possono avere un impatto negativo su tali dischi rigidi?

(how-to)

Come correggere l'indicizzazione della ricerca di Microsoft Windows Interrotto il lavoro ed è stato chiuso

Come correggere l'indicizzazione della ricerca di Microsoft Windows Interrotto il lavoro ed è stato chiuso

Essendo il ragazzo dei computer della mia famiglia, svolgo tutte le attività di supporto tecnico e talvolta incappo in strani problemi di cui decido di scrivere. Ovviamente con Windows, sembra che non si siano mai veramente esauriti gli strani problemi da affrontare! C'è sempre qualche errore pazzo e criptico che ti fa venire la testa grattata.U

(How-to)