Како избрисати датотеку са дужином стазе већом од 260 знакова

Није тајна да Виндовс Екплорер, као и већина других Виндовс апликација, укључујући ПоверСхелл, не може радити са објектима датотечног система са дубоким уметањем мапа., дужина путање која прелази 260 знакова. Штавише, ово ограничење постоји само на нивоу апликације, а сам систем датотека НТФС подржава стазе датотека до 32767 карактера.


Ово ограничење намеће библиотека. Вин32 АПИ, са максималном дужином стазе од 260 знакова (МАКС_ПАТХ = 260) Генерално, пут се формира од следећих елемената:  [Ц: \] + [пут_оф_256_карактери] + [], а максимална дужина једног директорија / датотеке у НТФС-у је 255 знакова у Уницоде-у. Када користите АПИ функције уницоде, могуће је користити стазу до 32767 карактера. Због тога, многи програми других произвођача (на пример, исти популарни управитељи датотека) Далеко и Укупни командант) обрађује датотеке / мапе без икаквих потешкоћа, чија дужина путање прелази 260 знакова.

Савет. Можете ограничити ово ограничење Вин32 АПИ-ја и радити са дугим именима датотека користећи УНЦ формат путање, назначујући апсолутни пут до датотеке помоћу префикса путање проширене дужине \\? \. На пример, па \\? \ Ц: \ СомеЛонгПатх \ ЛонгНамеФиле.ткт

Ово ограничење се такође не односи на мрежни приступ корисницима датотекама помоћу СМБ протокола (због тога структуре директорија с дугим путањама нису неуобичајене за сервере датотека са корисничким подацима). Администратор који послужује овај сервер не може управљати (брисати / премештати) датотеке дугим путевима кроз стандардни интерфејс истраживача Виндовс Екплорер. Приликом покушаја креирања / копирања датотеке у такав директориј, појављује се грешка:

Пут одредишта је предуг. Називи датотека били би предуги за одредишну мапу. Можете скратити име датотеке и покушати поново или покушати локацију која има скраћену стазу

Остали програми / дијалози могу на свој начин указивати на ограничење..

Смијешно је што је 2014. година изван прозора, а ми и даље говоримо о ограничењу од 260 знакова за максималну дужину пута у Виндовс-у ... Али чини се да се не очекују велике промјене у скорој будућности, па чак и у потпуно свјежем техничком прегледу Виндовс 10, ово ограничење још увек постоји.

У овом ћемо чланку показати како у Виндовс-у можете радити са датотекама чија путања прелази 260 знакова. У овом случају наш је задатак избрисати директориј који садржи датотеке са великом дужином пута.

Када покушате да избришете такав директориј из Екплорера, појављује се грешка:

Називи датотека били би предуги за одредишну мапу. Можете скратити име датотеке и покушати поново или покушати локацију која има скраћену стазу.

Поверсхелл такође не успева правилно руковати директоријумима и датотекама са великим путањама већим од 260 знакова. Када покушавате да избришете директоријум са таквим датотекама (Ц: \ Инсталл \ МС СКЛ 2012 Екпресс Едитион 64 бит \ верилонгпатх), појављује се грешка:

Ремове-Итем. \ Верилонгпатх -Рецурсе

Ремове-Итем: Наведена путања, назив датотеке или обоје су предуги. Потпуно квалификовано име датотеке мора бити мање од 260
знакова, а име директорија мора бити мање од 248 знакова.
На линији: 1 знак: 1
+ Ремове-Итем. \ Верилонгпатх -Рецурсе
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~
+ КатегоријаИнфо: ВритеЕррор: (Ц: \ Инсталл \ МС С ... ит \ верилонгпатх: Стринг) [Ремове-Итем], ПатхТооЛонгЕкцепти
на
+ ФуллиКуалифиедЕррорИд: РемовеИтемИОЕррор, Мицрософт.ПоверСхелл.Цоммандс.РемовеИтемЦомманд

Најједноставнија опција (која се, у ствари, предлаже у прозору грешке) је да се скрати име надређених мапа, смањујући укупну дужину пута (али није увек применљиво).

Друга опција је да се створи симболичка веза са делом стазе и на тај начин се скрати укупна дужина стазе:

мклинк / д ц: \ инсталл \ линк "Ц: \ Инсталл \ МС СКЛ 2012 Екпресс Едитион 64 бит \ верилонгпатх"

Затим би требале бити изведене операције с датотекама с директоријом којем је додијељена симболичка веза..

Друга опција која подсећа на рад са симболичком везом је мапирање проблематичне мапе на виртуелни диск (у нашем примеру Кс :), чиме се такође смањује дужина путање:

Субст Кс: „Ц: \ Инсталл \ МС СКЛ 2012 Екпресс Едитион 64 бит \ верилонгпатх“

Сада можете радити са подацима на Кс: погону, стазе датотека у којима неће прелазити ограничење. Након завршетка посла, можете избрисати виртуални диск:

Субст Кс: / д

Али лично ми се највише свиђа задатак брисања података у таквим ситуацијама робоцопи.еке, који подржава дуге стазе.

Коришћење опције / МИР, алат за роботирање може да створи потпуну копију (огледало) изворног директорија у циљу. Ако је изворна мапа празна, бришу се и сви подаци у одредишној мапи. Креирајте празну фасциклу Ц: \ Инсталирај \ тест и користећи / МИР аргумент, копирајте садржај тест мапе у циљану мапу (ако име мапе садржи размаке или ћириличне знакове, путања мора бити затворена наводницима).

робоцопи / МИР Ц: \ Инсталл \ тест "Ц: \ Инсталл \ МС СКЛ 2012 Екпресс Едитион 64 бит \ верилонгпатх"

Након извршења наредбе, садржај директорија Ц: \ Инсталл \ МС СКЛ 2012 Екпресс Едитион 64 бит \ верилонгпатх се брише (замењује га садржај празног директорија).

Дакле, данас смо показали неколико једноставних трикова које можете користити када радите са мапама на серверима датотека који садрже мапе чија дужина пута прелази границу од 260 знакова.