22Aug

Miksi Windows-raportointi Tämä kansio on liian kauan kopioitava?

Jos työskentelet Windowsin kanssa tarpeeksi kauan, etenkin kansiot ja tiedostot, joilla on pitkät nimet, tulet epätavalliseen virheeseen: Windows ilmoittaa, että kansion polku tai tiedostonimi on liian pitkä siirtyäksesi uusiin kohteisiin tai jopa poistaa. Mikä on sopimus?

Hei miten-Geek!

Joten toisena päivänä järjestin joitain tiedostoja tietokoneellani, luomaan kansioita, tällaista kamaa. Kun siirsin joitain tiedostoja kansioon, saan viestin, jossa todetaan, että tuloksena oleva kansiopolku olisi liian pitkä.Olin hämmentynyt. Tiedän, että jokainen käyttöjärjestelmä, koska DOS tukee pitkät tiedostot, Windows kuitenkin väittää, että polku on liian pitkä.Miksi näin tapahtuu?

Ystävällisin terveisin,

Mr. Disorganized

Ongelma, jota käytit, on valitettava risteys kahdesta järjestelmästä, joka tällaisissa tapauksissa aiheuttaa virheen. Jotta voisimme ymmärtää tarkalleen, mistä virheestä tulee, meidän on etsittävä Long Filenames( Long Filenames, LFN) historiaa ja miten Windows vuorovaikuttaa niiden kanssa, ennen kuin löydämme ratkaisuja.

Pitkät tiedostot otettiin käyttöön taustalla olevan MS-DOS -arkkitehtuurin kautta Windows 95: ssä. Uusi LFN-järjestelmä mahdollisti enintään 255 merkin tiedoston ja hakemiston nimen. Tämä oli tervetullut laajennus edellisen tiedostonimen järjestelmä, yleensä nimeltään 8.3 filenaming koska nimi oli rajoitettu kahdeksaan merkkiä ja kolmen numeron laajennus, mutta tunnetaan myös lyhyt tiedostonimi( SFN).Kuten voitte kuvitella, niin vielä siellä oli paljon DOS-pohjaisia ​​sovelluksia ja enemmän kuin muutama päänsärky yritettiin saada uudet LFN: t ja vanhimmat SFN: t pelaamaan mukavasti toistensa kanssa. Jos olet koskaan törmännyt vanhaan levykkeeseen tai CD-levylle, jolla on outoja lyhennettyjä tiedostoja( kuten abcdef ~ 1.txt), jonka tiedostonimi leikattiin joidenkin SFN: n käyttämien vanhojen sovellusten avulla joidenkin pidempien ja tukemattomien LFN: n( kuten abcdefghijk.txt).

Olemme kuitenkin kaukana 1990-luvun puolivälistä, ja koko Long Filename -hahmo on( suurimmaksi osaksi) luotettava. Jos käytät Windows-versiota viimeisten 10 vuoden aikana, et todennäköisesti koskaan edes törmää tiedostonimiin, kuten aiemmin käytimme DOS / Windows 95 päivää.Se sanoi, että silti törmätä hikkaihin, kuten havaitsit levyn puhdistusprojektin kanssa. Mutta miksi? Jos Windowsin Long Filename -järjestelmä tukee enintään 255 merkkiä / kansiota ja tiedostojen nimeä, mikä seinä on käynnissä?Emme voi syyttää NTFS: tä( tiedostojärjestelmää, jota suurin osa nykyaikaisista Windows-koneista käyttää), koska NTFS tukee kansioiden ja tiedostojen ketjuttamista yhteensä 32 767 merkin pituiseen polkuun. Tämä ylittää tyypillisen hakemistorakenteen, jota useimmat käyttäjät tarvitsevat.

Missä se kaikki hajoaa on keinotekoinen rajoitus Windows pinoaa LFN / NTFS-järjestelmän päälle: MAX_PATH-muuttuja. MAX_PATH-muuttuja määrittää, että täydellinen hakemistorakenne Windowsissa ei saa olla yli 260 kokonaislukua, mukaan lukien kirjaimen kirjain, kaksoispiste, kenoviiva ja loppuosa. Siten sinulla on vain todellinen MAX_PATH 256 merkkiä, esim. C: \ oma-256 merkin polku \ .

Joten mitä tapahtui, kun puhdistit tietokoneesi, on se, että sinulla oli hakemisto, jolla oli jo pitkä reitti( joko koska kansionimet olivat pitkiä, tiedostonimet olivat pitkiä tai molempia) ja kun yritit siirtää yhtä tai useampaanäistä hakemistoista toiseen hakemistoon, jossa on pitkä polku, polun nimen kokonaispituus ylitti MAX_PATH-muuttujan määräämän 260 merkin rajan.

Nyt voit ajatella "Ah-hah! Vaihdamme MAX_PATH-muuttujaa ja ratkaisemme ongelman! ", Ei valitettavasti ole niin yksinkertaista. Ei vain MAX_PATH-muuttuja oleellisesti kovakoodattu Windowsiin, mutta vaikka menetkin valtavaa vaivaa vaihtaa sitä, päätät murtautua niin paljon, että se ei olisi sen arvoista. Liian monta sovellusta odottaa polun muuttujan olevan mitä Windows on pitkään määritellyt sen olevan. Emme voi vain muuttaa sitä ilman suurta sotkua.

Mistä se jättää sinut? No, yksinkertaisin ratkaisu on vain muokata polkuja. Jos esimerkiksi sinulla on useita tallennettuja artikkeleita, joissa sovellus / laajennus, jota käytit niiden tallentamiseen verkosta, loi hakemiston, joka oli artikkelin ja artikkelirivin täysi otsikko ja sitten itse tiedostonimi on koko nimikeartikkelista ja artikkelijohdosta, olisi todella helppoa lyödä tai ylittää MAX_PATH yhdellä tallennuksella. Näiden valtavien kansioiden ja artikkelien otsikoiden muokkaaminen kohtuullisempaan kokoon on helppo tapa korjata ongelma.

Jos sinulla on valtava määrä tiedostoja, joilla on pitkä polku ja et halua muokata niitä kaikkia( tai jos haluat poistaa : n, vanhat puhelinluettelot, jotka ovat liian kauan Windowsille, MAX_PATH-muuttuja), komentorivi toimii. Vaikka MAX_PATH-muuttuja rajoittaa Windowsia, Windows-insinöörit havaitsivat, että tilanteissa, joissa käyttäjien pitäisi käsitellä pidempiä polkuja. Näin ollen Windows-sovellusliittymällä on toiminto erittäin pitkän polkujen käsittelyyn.

Jotta voit hyödyntää kyseistä sovellusliittymää ja käyttää komentorivityökaluja raskaiden kansioiden / tiedostojen nimeäsi, sinun on yksinkertaisesti liitettävä hakemiston nimi muutama ylimääräinen merkki. Jos esimerkiksi sinulla oli valtava hakemistorakenne, jonka haluat poistaa( mutta sait virheen polun pituuden vuoksi, kun yritit sitä), voit muuttaa komennon:

rmdir c: \ documents \ some-really-super-

-tiedosto:

rmdir \\? \ c: \ dokumentit \ joku-todella-super-pitkä-kansion nimi-järjestelmä \

Avain on \\? \ennen tiedoston polun alkua;tämä kehotti Windowsia jättämään MAX_PATH-muuttujan asettamat rajoitukset ja toimimaan vuorovaikutuksessa juuri toimitetun polun kanssa, joka toimitetaan / ymmärtää suoraan taustalla oleva tiedostojärjestelmä( joka voi selvästi tukea pidemmän polun).Kuten aina, käytä varoitusta komentokehotteessa, jotta vältät vahingossa poistettavien tiedostojen tai hakemistojen poistamisen.

Jos yleiskuvaus tästä ongelmasta on utelias, tutustu tämän artikkelin Microsoft Developer Network -kirjastoon, tiedostojen nimeämiseen, polkuihin ja nimetyyppeihin saadaksesi lisätietoa hupun alla olevista tiedoista.

Onko kysymys teknologiasta? Anna meille sähköpostia osoitteesta [email protected] ja teemme parhaamme vastatakseen siihen.