Почетна » како да » Зашто је Виндовс извештавање ове фасцикле сувише дуго за копирање?

    Зашто је Виндовс извештавање ове фасцикле сувише дуго за копирање?

    Ако радите са Виндовс-ом довољно дуго, посебно са фасциклама и датотекама које имају дуга имена, наиђете на бизарну грешку: Виндовс ће пријавити да је путања или име датотеке предугачка за прелазак на ново одредиште или чак и брисање. У чему је ствар?

    Хеи Хов-То Геек!

    Пре неки дан сам реорганизовао неке фајлове на свом компјутеру, креирајући фасцикле, такве ствари. Онда, када сам неке фајлове премештао у фасциклу, добијао сам поруку у којој се наводи да ће путања фасцикле бити предугачка. Био сам збуњен. Знам да сваки ОС од ДОС-а подржава Лонг Филенамес, али Виндовс тврди да је стаза предуга? Зашто се то догађа?

    Синцерли,

    Мр. Дисорганизед

    Проблем на који наилазите је несретно пресек два система који, у оваквим случајевима, дају грешку. Да бисмо тачно схватили одакле долази грешка, потребно је да се упишемо у историју дугих имена датотека (ЛФН) и како Виндовс интеракира са њима пре него што кренемо у решења.

    Дуга имена датотека уведена су кроз основну МС-ДОС архитектуру у оперативном систему Виндовс 95. Нови ЛФН систем дозволио је имена датотека и директоријума до 255 знакова. Ово је била добродошла експанзија претходног система назива фајлова, обично названог 8.3 филенаминг јер је име било ограничено на осам знакова и троцифрени наставак, али је такође познато као Схорт Филенаме (СФН). Као што можете замислити, тада је још увијек било много апликација базираних на ДОС-у и било је више од неколико главобоља које су покушавале да новије ЛФН-ове и наслијеђене СФН-ове играју лијепо једна с другом. Ако сте икада наишли на стару дискету или ЦД-РОМ са необично скраћеним датотекама на њему (као што је абцдеф ~ 1.ткт), то име фајла је било одрезано помоћу неке застареле апликације коју је користио СФН из неке дуже и неподржане ЛФН (као абцдефгхијк. ткт).

    Међутим, ми смо далеко од средине 1990-их, и читава ствар Лонг Филенаме је (углавном) чврсто изглачана. Ако покренете верзију оперативног система Виндовс од последњих 10 година, вероватно никада нисте наишли на конфликт дужине назива фајлова као што смо то раније користили у ДОС / Виндовс 95 дана. Међутим, још увек имамо проблема са штуцањем, као што сте открили са пројектом чишћења диска. Али зашто? Ако Виндовс 'Лонг Филенаме систем подржава фасцикле и називе датотека до 255 знакова по компоненти, на који зид радите? Не можемо кривити НТФС (датотечни систем који користи већина модерних Виндовс машина) јер ће НТФС подржавати уланчавање мапа и имена датотека до укупне дужине пута од 32.767 знакова. То далеко превазилази типичну структуру директоријума коју би већина корисника икада требало.

    Тамо где се све распада, вештачка рестрикција Виндовс стацкова на врху ЛФН / НТФС система: променљива МАКС_ПАТХ. Варијабла МАКС_ПАТХ специфицира да комплетна структура директоријума у ​​оперативном систему Виндовс не може да пређе укупно 260 знакова, укључујући слово јединице, двоточку, обрнуту косу црту и нулл бацклигхт на крају. Тако имате само потенцијални реални МАКС_ПАТХ од 256 знакова, нпр. Ц: путања од 256 знакова \ т.

    Дакле, оно што се десило када сте чистили рачунар је да сте имали директоријум са већ дугом стазом (било зато што су имена фолдера била дугачка, имена датотека су била дуга, или обоје), и када сте покушали да преместите један или више те директоријуме у други директоријум са дугом стазом, укупна дужина имена стазе премашила је ограничење од 260 карактера које је наметнула променљива МАКС_ПАТХ.

    Сада, можда размишљате “Ах-хах! Само ћемо променити променљиву МАКС_ПАТХ и решити проблем! ”Авај, то није тако једноставно. Не само да је варијабла МАКС_ПАТХ у суштини тешко кодирана у Виндовс, већ чак и ако сте прошли кроз огромне потешкоће да је промените, на крају бисте сломили толико да не би било вредно тога. Превише апликација очекују да ће варијабла стазе бити оно што је Виндовс дуго одредио да буде. Не можемо само да га мијењамо без стварања огромног нереда.

    Где вас то оставља? Па, најједноставније решење је да једноставно уредите податке о путањи. На пример, ако имате тону сачуваних чланака где је апликација / проширење које сте користили да их сачувате са веба креирали директоријум који је био пун назив чланка + водећи чланак, а онда је и сам назив датотеке пуни наслов у чланку + води чланак, било би стварно једноставно погодити или премашити МАКС_ПАТХ са једним уштедом. Уређивање тих огромних наслова директоријума и чланака на разумнију величину је једноставан начин да се реши проблем.

    Ако имате велики број фајлова са дугом стазом и не желите да их све уређујете (или ако желите делете тона старих директоријума који су предуги да би Виндовс могао да се бави када је ограничена променљивом МАКС_ПАТХ), ту је и командна линија. Иако је Виндовс ограничен променљивом МАКС_ПАТХ, Виндовс инжењери су схватили да ће постојати ситуације у којима ће корисници морати да се носе са дужим именима путања. Као такав, Виндовс АПИ има функцију која се бави екстремно дугим путањама.

    Да бисте искористили предности тог АПИ-ја и користили алате командне линије на незграпним именицима / именима датотека, једноставно требате додати име директорија с неколико додатних знакова. На пример, ако сте имали велику структуру директоријума коју сте хтели да избришете (али сте добили грешку због дужине пута када сте је покушали), могли бисте да промените команду из:

    рмдир ц: документи-стварно-супер-дуго-мапа-име-шема \ т

    до:

    а-стварно-супер-дуга-мапа-име-шема \ т

    Кључ је додатак . \ Т део пре почетка путање датотеке; ово упућује Виндовс да занемари ограничења наметнута од стране променљиве МАКС_ПАТХ и да интерагује са путањом коју сте управо испоручили као испоручени / схваћени директно од стране система основних датотека (што јасно може да подржи дужи пут). Као и увек, будите опрезни у командној линији да бисте избегли случајно брисање датотека или директоријума које сте намеравали да оставите нетакнутим.

    Ако је наш преглед овог проблема занимљив, дефинитивно се упишите у овај чланак из Мицрософт Девелопер Нетворк библиотеке, именовања датотека, путања и простора имена, за више информација о томе шта се дешава испод хаубе.


    Имате хитно технолошко питање? Снимите нам емаил на аск@ховтогеек.цом и ми ћемо се потрудити да му одговоримо.