Если вы когда-либо сталкивались с этой проблемой, возможно, для вас это было простое решение. Если вы видели эту ошибку более двух раз, то вы также знаете, что иногда ее исправление может оказаться сложной задачей.
Будем надеяться, что вы столкнетесь только с простыми исправлениями, но мы подготовим вас и к менее простым, но гарантированно работающим исправлениям.
Почему длина имени файла даже является проблемой в Windows?
Издавна длина имен файлов является проблемой для таких операционных систем, как Windows. Было время, когда имена файлов не могли быть длиннее 8 символов плюс трехзначное расширение файла. Лучшее, что вы могли сделать, это что-то вроде myresume.doc . Это ограничение было предусмотрено конструкцией файловой системы.
Положение стало лучше с выходом новых версий Windows. Мы перешли от старой, ограниченной файловой системы к так называемой файловой системе новой технологии (NTFS). NTFS привела нас к моменту, когда имя файла могло иметь длину 255 символов, а длина пути к файлу потенциально могла достигать 32 767 символов. Так как же мы можем иметь слишком длинные имена файлов?
В Windows есть вещи, называемые системными переменными. Это переменные, от которых зависит функционирование Windows, поскольку Windows всегда будет знать, что означают переменные и где они находятся, даже когда мы перемещаем биты и байты повсюду. Системная переменная MAX_PATH ограничивает длину имен файлов и путей к файлам менее 260 символами.
Поскольку это переменная, можно подумать, что мы можем ее изменить. Нет, нам не следует. Это все равно, что выдернуть нитку из свитера. Как только изменяется одна системная переменная, другие системные переменные и зависящие от них компоненты начинают разваливаться.
Как же тогда это исправить?
Легкое решение
Если вам повезет, вы получите сообщение об ошибке и точно узнаете, какое имя файла вызывает проблему. Или хотя бы где найти файл. Возможно, у вас есть имя файла, похожее на:
C:\User\guymc\Documents\My Resumesresumewithanamesolongthatitcausesproblemsandbecomespartofsomeguysarticleonthewebhowdoyoulikemenow.docx
Очевидно, кто в данном случае преступник. Найдите файл в Проводнике Windows или Проводнике , как он называется в Windows 10, щелкните его один раз, нажмите F2 , чтобы переименовать его, и измените это глупое имя файла на что-нибудь более разумное. Проблема решена..
Менее простые исправления
Решить эту проблему не всегда так просто. Иногда по какой-либо причине вы не сможете изменить имена файлов или каталогов.
Следующие решения помогут вам. Это несложно сделать.
Перемещение, удаление или копирование файлов и каталогов с помощью PowerShell
Иногда возникает ошибка при попытке переместить, удалить или скопировать каталоги, в которых количество символов в пути к файлу превышает 260.
Обратите внимание, что слова «каталог» и «папка» взаимозаменяемы. В дальнейшем мы будем использовать «каталог». Следующие командлеты PowerShell также можно использовать с файлами.
Возможно, путь к файлу выглядит примерно так:
C:\Users\guymc\Documents\This\Is\Exactly\The\Precise\Directory\Path\That\I\Need\To\Have\To\Keep\My\Files\Sorted\In\A\Manner\That\Makes\Sense\To\Me\So\Lets\Pretend\This\Is\An\Actual\Filepath\That\You\Might\Also\Have\On\Your\Windows\Computer\And\Not\Over\Think\It\Document.docx
Этот путь к файлу имеет длину 280 символов. Поэтому мы не можем скопировать каталог оттуда в другое место обычным методом копирования-вставки. Мы получаем сообщение об ошибке Слишком длинный путь назначения .
Предположим, что по какой-то причине мы не можем переименовать каталоги, в которых вложен файл. Что нам делать?
Откройте PowerShell. Если вы еще не использовали PowerShell, прочтите нашу статью Использование PowerShell для домашних пользователей – руководство для начинающих. Однако вы можете сделать следующие шаги, не читая статью.
Когда PowerShell откроется, вы окажетесь в корне вашего пользовательского каталога. Продолжайте, предполагая, что C:\Users\guymc — ваш каталог пользователя.
Каталог с именем Это находится внутри каталога Documents . Чтобы перейти в каталог Documents, мы используем команду DOS cd Documents .
Вы увидите изменение на C:\Users\guymc\Documents . Это хорошо. Мы работаем ближе к каталогам, что упростит задачу.
Копировать каталог с помощью Copy-Item
Мы хотим скопировать каталог This и его содержимое в ThatNewFolder . Давайте воспользуемся командлетом PowerShell Copy-Item с параметрами -Destination и -Recurse .
-Destination сообщает PowerShell, где мы хотим разместить копию. -Recurse сообщает PowerShell скопировать все элементы внутри в место назначения. При копировании оригиналы остаются на месте, а все новые создаются в месте назначения.
Копировать элемент This -Destination ThatNewFolder -Recurse
Переместить каталог с помощью Move-Item
Предположим, мы хотим переместить каталог This и все находящиеся в нем каталоги и файлы в ThatNewFolder . При перемещении оригинал не остается на месте.
Мы можем использовать командлет PowerShell Move-Item с параметрами -Path и -Destination . -Path определяет элемент, который мы хотим переместить, а -Destination сообщает PowerShell, куда мы хотим его переместить.
п>
Командлет поместит This внутрь ThatNewFolder. Он также переместит все, что находится внутри этого каталога. Команду Move-Item можно использовать для перемещения файлов или каталогов, и она работает независимо от пути к файлу или длины имени файла.
Move-Item -Path This -Destination ThatNewFolder
Чтобы убедиться, что это работает, используйте команду cd ThatNewFolder , чтобы войти в ThatNewFolder . Затем используйте команду dir , чтобы просмотреть каталоги в ThatNewFolder. Вы увидите, что этот каталог находится там.
Удалить каталог с помощью Remove-Item
Если мы хотим удалить каталог Этот и все, что в нем, мы используем командлет Remove-Item .
Командлет Remove-Item имеет некоторые встроенные средства безопасности, которые затрудняют удаление каталога с вещами внутри него. В нашем примере мы знаем, что хотим удалить все, поэтому воспользуемся параметрами -Recurse , чтобы удалить все внутри, и -Force , чтобы сделать это без спрашивая нас, уверены ли мы в каждом предмете внутри.
Будьте осторожны! Восстановить что-либо удаленное таким образом будет чрезвычайно сложно. Вы можете попробовать методы из Как восстановить случайно удаленные файлы, но не ждите многого.
Удалить этот элемент -Recurse -Force
Вы можете использовать команду dir еще раз, чтобы убедиться, что его больше нет.
Заставить Windows 10 принимать длинные пути к файлам
Если вы знаете, что будете постоянно использовать длинные пути к файлам и длинные имена файлов, вам будет проще заставить Windows работать на вас. Нет смысла использовать PowerShell для выполнения работы каждый день..
Это можно сделать двумя способами. Один предназначен для пользователей Windows 10 Home, а другой — для пользователей Windows 10 Pro или Enterprise. Эти методы могут работать для Windows 8.1 или более ранней версии, но мы не можем этого гарантировать.
Заставить Windows 10 Home принимать длинные пути к файлам
Чтобы Windows 10 Home принимала длинные пути к файлам, нам нужно открыть Редактор реестра . Если вы раньше не работали в редакторе реестра, будьте осторожны. Случайное удаление или изменение данных здесь может полностью прекратить работу Windows.
Всегда делайте резервную копию реестра перед внесением каких-либо изменений. Узнайте все, что вам нужно знать об этом, в нашем Полное руководство по резервному копированию и восстановлению реестра Windows.
Открыв редактор реестра и сделав резервную копию, перейдите в папку HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem и найдите ключ LongPathsEnabled .
Дважды щелкните LongPathsEnabled . Убедитесь, что в поле Значение указано число 1 . Нажмите ОК , чтобы сохранить изменения.
Выйдите из редактора реестра, и теперь вы сможете работать с невероятно длинными путями к файлам.
Заставить Windows 10 Pro или Enterprise принимать длинные пути к файлам
Чтобы разрешить Windows 10 Pro или Enterprise использовать длинные пути к файлам, мы собираемся использовать Редактор групповой политики . Это инструмент, который позволяет нам устанавливать политики работы Windows на уровне компьютера и пользователя.
У нас есть несколько статей об использовании групповой политики для выполнения таких задач, как отключение или включение параметров Internet Explorer или добавление сообщения на экран входа в систему.
Откройте редактор групповой политики, перейдя в меню Пуск и введя gpedit . Верхний результат должен быть Изменить групповую политику . Дважды щелкните по нему.
После открытия редактора групповой политики перейдите в раздел Конфигурация компьютера >Административные шаблоны >Система >Файловая система . Там вы увидите политику Включить длинные пути Win32 .
Дважды щелкните по нему, чтобы изменить параметр политики. Измените его с Отключено на Включено , затем нажмите кнопку ОК , чтобы сохранить изменения.
п>.
Политика может вступить в силу не сразу. Однако вы можете принудительно обновить групповую политику.
Вот и все
Есть и другие способы работы с длинными именами файлов и путями к файлам, но здесь мы рассмотрели самые простые и эффективные методы.
.