Kodėl "Windows" ataskaitų teikimas pernelyg ilgas kopijavimas?

Kodėl "Windows" ataskaitų teikimas pernelyg ilgas kopijavimas?
Kodėl "Windows" ataskaitų teikimas pernelyg ilgas kopijavimas?

Video: Kodėl "Windows" ataskaitų teikimas pernelyg ilgas kopijavimas?

Video: Kodėl
Video: Google Titan Security Key Bundle | How to Set Up Advanced Online Protection - YouTube 2024, Balandis
Anonim
Jei dirbate su "Windows" pakankamai ilgai, ypač su aplankus ir ilgesnius pavadinimus turinčiais failais, susidursite su keista klaida: "Windows" praneša, kad aplanko kelias ar failo vardas per ilgas, kad pereitumėte į naują paskirties vietą arba net ištrintumėte. Koks susitarimas?
Jei dirbate su "Windows" pakankamai ilgai, ypač su aplankus ir ilgesnius pavadinimus turinčiais failais, susidursite su keista klaida: "Windows" praneša, kad aplanko kelias ar failo vardas per ilgas, kad pereitumėte į naują paskirties vietą arba net ištrintumėte. Koks susitarimas?

Hey How-To Geek!

So the other day, I was reorganizing some files on my computer, creating folders, that kind of stuff. Then, when I was moving some files into a folder, I get a message, stating that the resulting folder path would be too long. I was confused. I know that every single OS since DOS supports Long Filenames, yet Windows claims that the path is too long? Why does this happen?

Sincerly,

Mr. Disorganized

Problema, su kuria susiduriate, yra nelaimingas dviejų sistemų susikirtimas, kuris tokiais atvejais sukelia klaidą. Norėdami tiksliai suprasti, iš kur kilo klaida, turime įsiskverbti į ilgų failų pavadinimų (LFN) istoriją ir tai, kaip "Windows" sąveikauja su jais, prieš pradėdami ieškoti sprendimų.

Ilgos failų pavadinimai buvo įdiegti per pagrindinę MS-DOS architektūrą Windows 95 sistemoje. Nauja LFN sistema leido failų ir katalogų pavadinimus, kurių simboliai buvo ne didesni kaip 255. Tai buvo sveikintina ankstesnės failų pavadinimo sistemos plėtra, kuri paprastai vadinama 8.3 filename, nes pavadinime buvo tik aštuoni simboliai ir trijų skaitmenų plėtinys, bet taip pat žinomas kaip trumpas failo vardas (SFN). Kaip jūs galite įsivaizduoti, tuo metu vis dar buvo daug DOS pagrįstų programų, ir buvo daugiau nei keletas galvos skausmų bandant gauti naujesnius LFNs ir senus SFN, kad jie galėtų puikiai žaisti vieni su kitais. Jei kada nors susidūrėte su senesniu disku arba kompaktiniu disku su neįprastai sutrumpintomis failais (pvz., Abcdef ~ 1.txt), kai kurios senesnės programos, naudojančios SFN, iškirpė kai kurias ilgesnes ir nepalaikomas LFN (pvz., Abcdefghijk). txt).

Tačiau nuo seno dešimtojo dešimtmečio vidurio jau senokai, o visas "Long Filename" dalykas (iš esmės) yra tvirtai išlygintas. Jei per pastaruosius 10 metų naudojate "Windows" versiją, tikriausiai niekada negalėsite susidurti su failo vardo ilgio konfliktu, kaip mes sugebėjome sugrįžti į DOS / Windows 95 dienas. Tuo tarpu mes vis dar susiduriame su žagsėjimais, kaip aptikote savo disko valymo projektu. Bet kodėl? Jei "Windows Long Filename" sistema palaiko kiekvieno komponento aplankus ir failų pavadinimus iki 255 simbolių, kokią sieną naudojate? Negalime kaltinti NTFS (failų sistemos, kurią naudoja dauguma šiuolaikinių "Windows" mašinų), nes NTFS palaiko aplankų ir failų pavadinimų susiejimą iki viso 32767 simbolių. Tai gerokai viršija įprastą katalogų struktūrą, kurią kada nors reikės vartotojams.

Kur viskas suskaido, yra dirbtinis apribojimas "Windows" rinkiniams, esantiems LFN / NTFS sistemos viršuje: MAX_PATH kintamasis. Keičiamasis MAX_PATH nurodo, kad užbaigta katalogo struktūra "Windows" negali viršyti 260 visų simbolių, įskaitant disko raidę, dvitaškį, grįžtamąjį brūkšnį ir nulinį atbulinės eigos pabaigą. Taigi jūs tik potencialus MAX_PATH potencialas, turintis 256 simbolių, pvz., C: jūsų-256 simbolių kelias.

Taigi, kas nutiko, kai išvalote kompiuterį, turėjote katalogą su jau seniai (arba todėl, kad aplankų pavadinimai buvo ilgi, failų pavadinimai buvo ilgi arba abu) ir bandėte perkelti vieną ar kelias tie katalogai į kitą katalogą, kuriame yra ilgas kelias, bendras kelio pavadinimo ilgis viršijo 260 simbolių limitą, kurį nustatė kintamasis MAX_PATH.

Dabar jūs galvojate "Ah-hah! Mes tiesiog pakeisime MAX_PATH kintamąjį ir išsprękime problemą! "Deja, tai nėra taip paprasta. Ne tik MAX_PATH kintamasis yra iš esmės kietai koduotas į "Windows", bet net jei jūs išgyvenote milžinišką vargo keisti jį, jūs galų gale nutraukti taip daug nebūtų verta. Pernelyg daug programų tikisi, kad kelio kintamasis yra tai, ką "Windows" jau seniai nurodė. Mes negalime tiesiog pereiti keisti, nesukuriant didžiulės netvarka.

Kur tai palieka tave? Na, paprasčiausias sprendimas yra tiesiog redaguoti kelio duomenis. Pavyzdžiui, jei turite daugybę išsaugotų straipsnių, kuriuose programa / plėtinys, kurį naudojote išsaugoti juos iš žiniatinklio, sukūrė katalogą, kuris buvo pilnas straipsnio pavadinimas + straipsnio pavadinimas, o pats failo vardas yra visas pavadinimas straipsnis + straipsnis, tai būtų labai paprasta pasiekti ar viršyti MAX_PATH su vienu taupymu. Šių didžiulių aplankų ir straipsnių pavadinimų redagavimas iki tinkamesnio dydžio yra paprastas būdas išspręsti šią problemą.

Jei turite daug failų su ilgais keliais ir nenorite jų redaguoti (arba jei noriteIštrinti tonų senų katalogų, kurie yra pernelyg ilgi, kad "Windows" galėtų susidoroti su apribojimu pagal MAX_PATH kintamąjį), yra komandinės eilutės darbas. Nors "Windows" yra apribotas MAX_PATH kintamojo, "Windows" inžinieriai suprato, kad būtų situacijų, kai vartotojams reikės spręsti ilgesniųjų maršrutų pavadinimus. Taigi, "Windows" API funkcija yra susijusi su labai ilgais keliais.

Norėdami pasinaudoti šia API ir pasinaudoti komandinės eilutės įrankiais savo nepatogiems aplankams / failų pavadinimams, tiesiog reikia pridėti katalogo pavadinimą keliais papildomais simboliais. Pavyzdžiui, jei jūs turėjote didelę katalogų struktūrą, kurią norite ištrinti (bet gavote klaidą dėl kelio ilgio bandydami), galite pakeisti komandą iš:

rmdir c:documentssome-really-super-long-folder-name-scheme

į:

rmdir \?c:documentssome-really-super-long-folder-name-scheme

Pagrindinis raktas yra papildymas

?

dalis prieš pradedant failo kelią; tai įpareigoja Windows ignoruoti apribojimus, kuriuos nustatė MAX_PATH kintamasis, ir sąveikauti su pateiktu tiesioginiu būdu pateiktu / suprantamu pagrindu esančių failų sistemos (kuris gali aiškiai paremti ilgesnį kelią) sąveika.Kaip visada būkite atsargus komandinėje eilutėje, kad būtų išvengta netyčinio ištrynimo failų ar katalogų, kuriuos ketinate palikti nepažeistą.

Jei norėtumėte sužinoti šio klausimo apžvalgą, būtinai įskiepite į šį straipsnį iš "Microsoft Developer Network" bibliotekos "Failų pavadinimai", "Pėdos" ir "Namespaces", kad gautumėte daugiau informacijos apie tai, kas vyksta po gaubtu.

Ar turite neatidėliotino techninio klausimo? Užsirašykite mums adresu [email protected] ir mes padarysime viską, kad jam atsakytume.

Rekomenduojamas: