Как сократить путь к файлу

Как сократить путь к файлу

Описание

При попытке удалить или переместить файл, появляется ошибка:

Слишком длинный путь к источнику.
Файловая система не поддерживает такие длинные имена исходных файлов. Попробуйте перенести файл в папку с меньшей длинной пути или укажите более короткое имя файла и повторите попытку.

Причина

По умолчанию, операционная система Windows настроена на блокирование действий над файлами, путь к которым более 255 символов.

Решение

Способ 1. Уменьшаем путь до файла

Переименовываем все папки, в которые вложен наш файл. Когда путь до последнего сократиться, можно выполнить удаление или перемещение.

Способ 2. Включаем поддержку длинных файлов

Данный способ поддерживается, начиная с Windows 10 / Server 2016.

Ограничение в 255 символов — пережиток прошлого, необходимый для обеспечения совместимости с другими файловыми системами. Система не будет работать хуже, если данное ограничение отключить.

Открываем реестр (команда regedit) и переходим по пути HKLMSYSTEMCurrentControlSetControlFileSystem. Находим или создаем ключ LongPathsEnabled с типом REG_DWORD и задаем ему значение 1.

Это же действие из командной строки:

reg delete "HKLMSYSTEMCurrentControlSetControlFileSystem" /v LongPathsEnabled /f

reg add "HKLMSYSTEMCurrentControlSetControlFileSystem" /v LongPathsEnabled /t REG_DWORD /d 1

* первая команда, на всякий случай, удалит старый параметр (если его нет, команда вернет ошибку). Вторая — создаст нужный нам ключ.

Способ 3. Укорачиваем путь

Настраиваем сетевой доступ к папке и подключаем ее как сетевой диск. Путь станет меньше.

Способ 4. Far Manager

Устанавливаем программу Far Manager и просто удаляем необходимые файлы.

В чем была проблема?

Если вам удалось решить проблему, поделитесь своим опытом для других. Что помогло:

Вредная операционная система Windows не даёт удалить файл и кричит, что у него «Слишком длинный путь к источнику»?

В этой статье расскажу, как легко и просто, без каких-либо программ, победить длинное имя файла в Windows сократив его.

Слишком длинный путь к источнику — почему?

Сразу хочу объяснить, почему появляется такое системное предупреждение и не удаётся произвести с файлом (папкой) элементарные действия копирования или удаления…

Читайте также:  Залитый провал path of exile

В самом уведомлении написан ответ на этот вопрос — файловая система Windows не поддерживает (не понимает) имена исходных файлов длиннее 255 символов.

Но имя файла или папки короткое, например, «Фото из отпуска»?

Дело в том, что «глупая» система воспринимает весь путь к файлу как его длинное имя. Если он (или папка) лежат где-то слишком глубоко в файловом менеджере, то это имя будет выглядеть примерно так…

Вот и собираются символы имени в банду из более 255 штук.

Как удалить неудаляемый файл или папку в таком случае? Очень просто — нужно сократить слишком длинное имя файла (пути) методом переименования вложенных друг в друга папок.

Как удалить файл с длинным именем

Покажу на своём примере, как удалить файл с длинным именем у которого, как пишет система, слишком длинный путь к источнику.

Читайте также на сайте:

Вчера решил почистить компьютер от старых резервных копий сайта, а они не захотели удаляться. Как догадались — появилось предупреждение о слишком длинном пути к источнику…

Начиная с самой первой папки в этом длинном пути — переименовал несколько штук…

…и повторил попытку избавиться от файла с теперь коротким именем — он благополучно отправился в страну удалённых файлов.

Естественно, что новое имя файла (папки) должно состоять из одного символа или цифры, как у меня в примере.

Так просто решается проблема удаления файлов или папок с длинным именем. Это не единственный метод конечно.

Можно специальными программами удалять или через реестр — лишь показал ручной способ. У кого-то он займёт минуту всего, а у кого-то и полчаса — решать Вам, как сократить длинное имя файла в Windows (слишком длинный путь к источнику).

До новых полезных компьютерных программ и интересных приложений для Андроид.

ПОЛЕЗНОЕ ВИДЕО

Многим пользователям ПК под управлением ОС Windows, не говоря о разработчиках, знакомы проблемы при работе с длинными (более 260 символов, MAX_PATH) путями файлов или каталогов.

Читайте также:  Как назвать аудиторию в инстаграм

В данной статье рассматриваются способы избавления от этого пережитка при разработке приложений на различных платформах (WinApi, .Net Framework, .Net Core) и активации нативной поддержки длинных путей в Windows 10 (Anniversary Update).

Приложения Win API

В приложениях, которые используют Win API для работы с файлами, рецепт избавления от ограничения MAX_PATH был известен с незапамятных времён – необходимо было использовать Unicode версию функции с окончанием «W» для работы с директорией или файлом и начинать путь с префикса \?. Это давало возможность использовать пути длинной до 32767 символов.

В Windows 10 (1607) поведение функций для работы с файлами изменилось: появилась возможность отключить проверку ограничений MAX_PATH на уровне системы.

Это избавляет от необходимости использовать префикса \? и потенциально даёт шанс приложениям, работающим напрямую или косвенно через Win API, получить поддержку длинных путей без необходимости их пересборки. Как активировать эту возможность описано в конце статьи.

.Net Framework

Хотя .Net Framework и использует Win API для работы с файлами — предыдущее изменение не принесло бы результата, т.к. в код BCL встроены предварительные проверки на допустимость длинны имён каталогов и файлов, и до вызова функций Win API дело даже не доходило, выдавая известное исключение. По многочисленным просьбам сообщества (более 4500 на UserVoice) в версии 4.6.2 из кода BCL вырезали проверки ограничения длинны пути, отдав это на откуп операционной и файловой системам!

Вот что это даёт:

  • При использовании префикса “\?” мы можем работать с длинными путями как в Win API,
  • Если активировать нативную поддержку длинных имен файлов Windows 10 (1607), то даже не потребуется использовать префикс!

Как включить:

  • Использовать .Net Framework 4.6.2 как цель при сборке приложения.
  • Использовать конфигурационный файл, например, если приложение уже было собрано под .Net 4.0:
Читайте также:  Какое приложение нужно для нфс

.Net Core

Тут поддержку длинных путей анонсировали ещё в ноябре 2015 года. Видимо сказалось Open Source природа проекта и отсутствие строгой необходимости обеспечения обратной совместимости.

Как включить:
Всё работает из коробки. В отличие от реализации в .Net Framework – тут нет необходимости в добавлении префикса “\?” – он добавляется автоматически при необходимости.

Вот тут можно посмотреть пример.

Как включить поддержку длинных путей в Windows 10 (1607)

Эта возможность по умолчанию отключена. Это объясняется тем, что данная функция является экспериментальной, и имеется необходимость дорабатывать различные подсистемы и приложения для полной поддержки.

Включить встроенную поддержку длинных путей можно создав или изменив следующий параметр системного реестра: HKLMSYSTEMCurrentControlSetControlFileSystem Параметр LongPathsEnabled (Тип: REG_DWORD) 1 – соответствует значению включено.

Или через групповые политики (Win+Rgpedit.msc) Computer Configuration > Administrative Templates > System > Filesystem > Enable NTFS long paths.Оно же в локализованном варианте: Конфигурация компьютера > Административные шаблоны > Система > Файловая система > Включить длинные пути Win32.

Далее источники расходятся во мнении относительно манифеста (или я неправильно понял, но на данный момент проверить не имею возможности). Например, в документации MSDN написано, что манифест можно использовать в качестве альтернативного способа активации поддержки длинных путей в отдельных приложениях, а в блоге MSDN указано, что это является вторым обязательным шагом после активации в политиках.
Но они сходятся в формате задания данной опции:

С CMD, к сожалению, это не сработает, на данный момент, из-за особенностей работы с путями, а в PowerShell должно всё заработать.

На этом мой небольшой пятничный пост заканчивается, оставив за рамками вопросы полноты реализации поддержки длинных путей в Windows 10 (1607), или работоспособность при использовании различных комбинаций редакций Windows, файловых систем и API. По мере поступления новых фактов и результатов экспериментов пост будет обновляться.

Ссылка на основную публикацию
Как соединить ноутбук с ноутбуком
Блог о модемах, роутерах и gpon ont терминалах. Чем прекрасен ноутбук, так это своей мобильностью. Эта черта в первую очередь...
Как сделать чтобы контакт не запоминал пароль
Если вас интересует, как в ВК удалить сохраненный пароль, значит вы попали к нам на страничку очень кстати. Мы как...
Как сделать чтобы металлоискатель не обнаружил телефон
Использование арочных и ручных металлоискателей – это один из самых распространенных способов досмотра в любом общественном месте, начиная от обычного...
Как соединить обрезанные песни в одну
Соединяйте любимую музыку в один трек Быстрое объединение песен С помощью этого инструмента можно добавить несколько файлов одновременно, поэтому вам...
Adblock detector