файловая система не поддерживает такие длинные имена исходных файлов как скопировать

Файловая система не поддерживает такие длинные имена исходных файлов как скопировать

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

Добрый день! Уважаемые читатели и гости одного из крупнейших IT блогов Pyatilistnik.org. В прошлый раз мы с вами разобрали возможности утилиты PING, рассмотрели как ее применять на практике. В сегодняшней публикации я вам покажу, как устраняется боль и печаль в операционных системах Windows, я говорю про длинные пути, в своей практике я очень часто встречал жалобы «Слишком длинный целевой путь» или «Слишком длинный конечный путь«, то же самое вы можете встретить и при удалении. Ниже я покажу, как выкручиваться из данной ситуации.

Описание проблемы длинных путей

Тем не менее, файловая система Windows по-прежнему накладывает некоторые ограничения, например, какие символы могут использоваться в именах файлов и общую длину путей. Некоторое время максимальная длина пути составляла 260 символов, но с появлением Windows 10, часть ограничений начала потихоньку уходить, например для приложений и появилась возможность отключить проверку MAX_PATH и использовать длинные пути без префикса \\?\.

Что интересно, значение в 260 символов обусловлено значением MAX_PATH Win32 API. У файловой системы NTFS максимальная длина пути ″немного″ больше и составляет 32767 символа. Для обхода ограничений Win32 API некоторые приложения используют формат UNC, указывая абсолютный путь с префиксом \\?\, например так:

Большинство людей может и не столкнуться с ней, а вот почти каждый системный администратор обязательно это увидит. Тут все дело в том, что в большинстве организаций есть свои сетевые файловые ресурсы, через которые пользователи производят обмен и работу с документами. В какой-то момент люди могут создать такой путь, который будет 258 или 260 символов, попытаются туда скопировать файл, а им выдастся ошибка:

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

Тоже самое при копировании в папку, так же выскакивает «Слишком длинный целевой путь».

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

Вот ошибка при извлечении архива в сетевую папку:

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

Методы снимающие ограничения на длину пути в Windows

Нюансы длинных путей в приложениях

Есть один нюанс. Этот новый параметр (имеется ввиду та политика и ключ реестра) не обязательно будет работать со всеми существующими приложениями, но он будет работать с большинством. В частности, любые современные приложения должны работать нормально, как и все 64-битные приложения. Старые 32-разрядные приложения должны быть применимы для работы, что на самом деле просто означает, что разработчик указал в файле манифеста приложения, что приложение поддерживает более длинные пути. Большинство популярных 32-битных приложений не должно вызывать проблем. Тем не менее, вы ничем не рискуете, пробуя настройку. Если приложение не работает, единственное, что произойдет, это то, что оно не сможет открывать или сохранять файлы, сохраненные в местах, где полный путь превышает 260 символов.

Если вы разработчик, то чтобы ваше приложение имело возможность работать с длинными путями Windows, в манифесте обязательно указывайте следующие настройки:

Как в Windows 10 отключить ограничение на длину пути в 260 символов через политику

Чем примечателен данный метод, так это тем, что неподготовленных пользователей он не вынуждает выполнять команды или производить правку реестра, тут все в графическом виде. Так же если у вас есть домен Active Directory и вы хотите массово убрать ошибки «Слишком длинный целевой путь» или «Слишком длинный конечный путь» в приложениях и запретить им проверять MAX_PATH и использовать длинные пути без префикса \\?\, то групповые политики вам это помогут.

Покажу для начала, как делать через локальную политику, открываете окно «Выполнить» в котором пишите gpedit.msc.

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

Далее идем по пути:

Найдите тут параметр «Включить длинные пути Win32 (Enable Win32 long paths)«, по умолчанию он отключен, и я честно не понимаю почему. Активируйте его.

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

Как я писал выше, в проводнике это не даст ни каких эффектов, поэтому вы все так же будите получать ошибку при копировании, создании, удалении «Слишком длинный целевой путь» или «Слишком длинный конечный путь«. Ниже я покажу, что делать если нужно что-то там удалить или изменить. Данное ограничение в длине пути теперь не подхватиться на лету всеми приложениями, потребуется перезагрузка.

Включение поддержки длинных путей через реестр

Данный метод ни чуть не сложнее предыдущего и делает все то же самое, включает поддержку длинных путей свыше 256 символов для приложений Windows. Когда вы что-то меняете через редактор политик, по сути меняются настройки в реестре, это нужно помнить и знать. Сейчас я вам покажу какой ключ меняется. Откройте редактор реестра Windows. Перейдите в раздел:

тут вам необходимо найти параметр LongPathEnabled, которому для активации поддержки длинных путей и изменения ограничений в MAX_PATH, нужно задать значение «1». Тут потребуется перезагрузка.

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

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

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

Еще вы можете сделать такую поддержку и для конкретного пользователя по пути:

Если там нет ключа LongPathsEnabled, то создайте его, тип DWORD (32 бита) и значение 1.

Как в Windows 10 отключить ограничение на длину пути в 260 символов через PowerShell

Не все люди готовы копаться в редакторах и реестрах, им нужно быстрое решение, одним из таких является PowerShell. В оболочке выполните команду для активации параметра «Включить длинные пути Win32 (LongPathEnabled)». Не забываем перезагрузить систему.

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

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

Разобравшись с тем, как отключить проверку MAX_PATH в приложениях, давайте теперь поймем и научимся решать проблему длинных путей на файловых шарах и просто в проводнике. Классическая ситуация, когда пользователь попытался перенести свой файл или удалить его, создать папку и так далее, и он получает ошибку с пресловутыми длинными путями. Он просит разобраться вас и тут начинаются танцы с бубнами, вы просите его либо переименовать часть пути, или попросить его произвести действия в другом расположении, или просто забить, сказав, что виновата Windows со своими ограничениями, но мы же с вами профессионалы и инженеры, поэтому должны уметь выходить из таких ситуаций.

Как в Windows 10 отключить ограничение на длину пути в 260 символов через командную строку

Запустите командную строку в режиме администратора и введите:

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

Обход ограничений длинных путей через 7zFM

Наверняка многие знают архиватор 7Zip, но мало кто пользуется его файловым менеджером 7zFM.exe, а зря именно он может вам помочь в ситуации с сообщением «Слишком длинный целевой путь» или «Слишком длинный конечный путь». Вот у меня есть тестовая директория, у которой уже есть 260 символов в пути, и я не могу там создавать новую папку.

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

Откройте 7zFM.exe и перейдите в нем в конечную папку вашего пути.

Для создания новой папки нажмите клавишу F7.

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

Задайте необходимое вам имя, в моем примере это будет «БОльше 260 Microsot«.

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

В результате у нас создалась новая папка и заметьте 7zFM не ругнулся на наличие длинных путей, он их игнорирует просто и все.

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

Проверяем, что директория доступна через проводник Windows.

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

Все прекрасно отображается. Теперь я думаю вы легко сможете переносить, копировать, удалять файлы через 7zFM, когда вам проводник Windows ругается на наличие длинных путей.

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

Как обойти ограничение длинных путей через символьную ссылку

Такой трюк мы с вами уже проделывали, когда нужно было переносить IMAP профиль у Outlook. Смысл в том, что создается файл в нужном вам месте, и этот файл это просто ярлык ссылающийся на нужный вам файл или папку, после этого путь сокращается и вы можете удалять или создавать все что вам нужно. Откройте командную строку, далее вам нужно иметь два составляющих:

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

Нам поможет команда mklink, где ключ /D создает ссылку на каталог

Источник

Если не удаляется файл с длинным именем и появляется ошибка, что файловая система не поддерживает такие длинные имена?

Длинный у нас получился заголовок получился, но он указывает на суть проблемы, которая будет здесь описана. Недавно я столкнулся с не очень хорошей ситуацией. Сортируя файлы на жёстком диске и очищая его от ненужного, я обнаружил, что один из файлов не удаляется, а появляется ошибка следующего содержания: «Файловая система не поддерживает такие длинные имена исходных файлов. Попробуйте перенести файл в папку с меньшей длиной пути или укажите более короткое имя файла и повторите попытку».

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

Я не только не мог удалить файл, но еще и изменить имя на более короткое имя тоже не удалось. Для многих это показалось бы тупиком, ведь получается, что файл не удаляем.

На самом деле проблема решается очень просто и быстро, и сейчас я опишу два метода её решения, а каким пользоваться решать только вам.

Что делать, если слишком длинный путь к источнику, как удалить такой файл?

При наличии файла, который не удаляется из-за длинного имени, решить проблему можно несколькими вариантами. Например, файл вложен в несколько каталогов, допустим, пять или даже десять папок, которые имеют названия по 10-20 знаков, то это и может быть причиной не удаления файла. Дело в том, что Windows не поддерживает любые файлы, в названиях которых больше 260 символов. Если этот предел превышен, то появится ошибка, которую я показал выше. Количество папок, имеющие свои названия и само имя файла в сумме должны давать менее 260 символов. В системе также есть одна особенность – при превышении этого ограничения мы всё-таки можем переименовывать папки. А это значит, что необходимо переименовать все папки на короткое имя, например, буква или цифра.

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

Такая проблема может появиться не только из-за того, что вы дали такое длинное название. У меня это произошло тогда, когда я решил загрузить себе файлы сайты с сервера и кое-что сделать. Так как файлы уже были не нужны, я удалил весь каталог с файлами сайта, но как оказалось он содержал файл с очень длинным именем, плюс названия папок и это не дало мне всё это удалить.

Метод второй поможет, если с первым не удалось. Дело в том, что не все папки, ведущие к файлу с длинным именем, могут переименовываться и будет вылетать всё так же ошибка файловой системы. Тогда вы можете создать виртуальный диск, используя любую из вложенных папок, ведущих к не удаляемому файлу. Сейчас я покажу, как это сделать.

Открываем командную строку. Для этого нажимаем сочетание Win+R и вводим команду cmd. Можно нажать правой кнопкой мыши по меню Пуск (Либо сочетание клавиш Win+X) и выбрать там командную строку.

Теперь вы пишите такую команду, которая сделает для нас виртуальный диск:

subst буква-диска «путь к файлу или папке – это и будет диском»

Нужно выбрать такую букву диска, которая не занята другими. Системный раздел обычно указывается буков C, а второй раздел, как D или E, тогда выбираем любую другую.

Путь к папке нужно указывать от диска. Если у вас это вызывает сложность, то откройте ту папку, которая будет выступать в качестве виртуального диска и в проводнике вверху скопируйте путь до неё.

У меня эта команда выглядит следующим образом:

subst Z: «C:\Users\User\Desktop\3333333333333333333333333333333333333333333333333333\1\1\1»

Когда мы зайдем в Мой компьютер, то там вы должны увидеть диск, с той буквой, которую мы ей присвоили из командной строки. Таким образом, путь к файлу сократиться практически в два раза, а это значит, что общая длинна символов может составлять менее 260 знаков. Теперь вы можете попробовать избавиться от неудаляемого.

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

Для того, чтобы виртуальный диск удалить нужно ввести команду:

subst БукваДиска /d

Используем Total Commander

В интернете я обнаружил метод, который позволяет удалить не удаляемые файлы при помощи утилиты Total Commander. Конечно, минус тут в том, что придётся устанавливать дополнительный софт на компьютер, а это не все захотят делать. В любом случае оставлю этот способ здесь, вдруг кто захочет воспользоваться.

Скачиваем и устанавливаем программу. Идём во вкладку «Файл» щелкаем по разделу «Изменить атрибуты». Появляется окошко, где убираем галки со всех атрибутов. Если вверху не стоит галочка напротив пункта «Обрабатывать содержимое каталогов» – выбираем. Теперь из этой же программы пробуем удалить файл с длинным именем.

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

Используем архиватор 7-Zip

Для этого дела нам понадобится архиватора 7-Zip. Нажимаем правой кнопкой мыши по начальному каталогу и направляем мышь на раздел «7-Zip» и выбираем пункт «Добавить к архиву».

Появляется окно, в котором вам нужно отметить только одну галочку «Удалять файлы после сжатия». Потом нажимаете ОК.

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

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

Вот такие способы по исправлению ошибки не удаляемого файла мы рассмотрели. Может быть у вас есть еще варианты, как можно это сделать?

Источник

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

Описание

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

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

Причина

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

Решение

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

Есть несколько способов сократить путь до нужной нам папки.

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

2. Создаем символьную ссылку на конечный путь. Это можно сделать командой:

mklink /d «C:\Папка0» «C:\Папка\Папка 2\Папка 3\ Папка 4\Папка 5»

* в данном примере перейдя по пути C:\Папка0, мы окажемся в папке C:\Папка\Папка 2\Папка 3\ Папка 4\Папка 5.

3. Сопоставляем папку букве диска с помощью команды subst:

subst S: «C:\Папка\Папка 2\Папка 3\ Папка 4\Папка 5»

* в данном примере мы создадим диск S, который будет вести нас в папку C:\Папка\Папка 2\Папка 3\ Папка 4\Папка 5.

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

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

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

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

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

reg delete «HKLM\SYSTEM\CurrentControlSet\Control\FileSystem» /v LongPathsEnabled /f

reg add «HKLM\SYSTEM\CurrentControlSet\Control\FileSystem» /v LongPathsEnabled /t REG_DWORD /d 1

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

Способ 3. Far Manager

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

Иногда, данный способ работает только после того, как мы включили поддержку длинных имен (способ 2).

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

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

Например, это можно сделать командой:

net use J: \\server\share /persistent:yes

* данной командой мы создадим диск J, который будет вести на сетевую папку \\server\share.

Способ 5. Используем командную строку

Если нам нужно скопировать или перенести небольшое количество файлов, мы можем воспользоваться командной строкой. Для копирования используем xcopy, для переноса — move.

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

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

Источник

Вадим Стеркин

У читателя Александра подопечный юзер спросонья удалил важный файл из сетевой папки. Админ, заранее подстеливший соломку, успокоил беднягу и уверенно открыл вчерашние теневые копии. Файл там был, но в нагрузку с ним шли грабли.

[+] Сегодня в программе

Слишком длинный целевой путь или имя файла

При попытке восстановить я получил ошибку о том, что путь до файла слишком длинен, и ничего с ним сделать нельзя. Т.к. это копия vss переименовать\скопировать\переместить я его не смог. Бился целый день, но выхода так и не нашел.

И неудивительно, с таким-то путем! 🙂

Графический интерфейс теневых копий выпилили только из Windows 8, а на серверной ОС он сохранился, и свойства папки выглядят аналогично Windows 7.

файловая система не поддерживает такие длинные имена исходных файлов как скопировать. Смотреть фото файловая система не поддерживает такие длинные имена исходных файлов как скопировать. Смотреть картинку файловая система не поддерживает такие длинные имена исходных файлов как скопировать. Картинка про файловая система не поддерживает такие длинные имена исходных файлов как скопировать. Фото файловая система не поддерживает такие длинные имена исходных файлов как скопировать
Снимок экрана любезно предоставил Вадимс Поданс

Как обойти ограничение на создание файла с длинным путем

Понятно, что восстановление [Restore] при таком длинном пути не сработает – ведь нужно скопировать файл в исходное расположение. Но я сходу не понял, почему возникли затруднения с копированием файла в любое другое место [Copy] – главное же было вернуть файл пользователю. Проводник же может скопировать файл из длинного пути.

Так или иначе, я получил письмо в метро, и поэтому с телефона по-быстрому отправил ответ, который должен был обойти препятствие. Я предложил создать символическую ссылку на часть пути:

Теперь копирование файла в C:\link должно было вернуть его на прежнее место. И это сработало 🙂

Такое решение пришло мне в голову не случайно – ведь вопрос был о теневых копиях, а я уже пару раз рассказывал, как войти в них с помощью символической ссылки. Позже, когда я готовил эту заметку и рылся в своей записной книжке, всплыло и другое решение, которым я делился три года назад.

Команда subst сопоставляет папку букве диска, и при желании одной командой можно моментально занять все буквы! В принципе, если путь супер-длинный, это может пригодиться, т.к. придется создавать серию сопоставлений.

Эксперимент

Хотите проверить, как все выглядит на практике? Я подготовил для вас CMD-файл (скачать), этапы работы которого вы можете наблюдать в проводнике. Запускайте файл от имени администратора, иначе символическая ссылка не получится. Я проверял работу файла только в Windows 8.1, но он должен работать и в предыдущих ОС.

Поскольку пояснения кириллические, файл нужно сохранять в кодировке MS-DOS (подсказка – у вас всегда есть WordPad 🙂

Прежде чем удалять все файлы на последнем шаге, вы можете поиграть с созданными файлами и папками в файловом менеджере. Вы увидите разные сообщения. Например, при попытке копирования файла в папку:

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

При создании нового текстового документа (стандартное имя длинное):

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

Разные консольные команды тоже на свой лад сообщают об ограничении.

Дискуссия

Вообще, длина пути в 260 символов это анахронизм, хотя я не припоминаю, когда сталкивался с ограничением в последний раз. Однако я уже давно не раскладываю все по папочкам, и уж тем более с такими адскими именами.

А вы давно сталкивались с ограничением на длину пути? Напишите в комментариях, как вы справились с проблемой или какое еще решение вы знаете. Я специально не указал все решения задачи:)

Upd. В комментариях читатели поделились своим опытом по обходу ограничения на длину пути:

Об авторе

Вас также может заинтересовать:

Я в Telegram

Подпишитесь на канал и читайте интересные записи чаще! Есть вопросы? Задайте их в чате.

комментариев 78

как для эксперимента на win 7 создать теневую копию какой-либо папки? Тогда можно было бы поэкспериментировать с длинными именами.

Создайте точку восстановления, см. связанные статьи. Код в статье пригоден для эксперимента без теневых копий.

я чего спросил. Просто фиг его знает, чем там пути в теневых копиях отличаются от обычных.
Если это такие же обычные пути, то можно юзать даже jscript/vbscript + com-библиотека DynamicWrapper v2 + нативные юникодные WinAPI + UNC-пути.
Или python + UNC-пути.

Я тоже знаю карате, кунг-фу и еще много других страшных слов 🙂

Сталкивался с этой проблемой буквально недавно. Приходилось сокращать названия родительских папок.

Павел, этот вариант решения я не рассматривал ввиду очевидности 🙂

Не совсем про длину пути, но тем не менее: мои документы структурированы и хранятся в OneDrive, сотрудник внес изменения, и тут бах — ошибка синхронизации «бла-бла-бла неправильный путь» или как-то так. Долго пытался понять, что же случилось. Оказалось, файл переименовали таким образом, что в начале имени оказался пробел. Причем при копировании файла, допустим, на рабочий стол, пробел в имени самостоятельно исчезал. Интересно, а если бы мне понадобилось восстановить теневую копию подобного файла, удалось бы?

при установке библиотек для node.js все зависимости складываются не в корне папки node_modules, а для каждой библиотеки отдельно внутри ее папки. Таким образом выстраивается огромное дерево с многократной вложенностью. На Windows это привело к тому, что невозможно удалить папку. Никакие советы из интернета не помогли, кроме одного, давно забытого мною — удалить папку из GUI 7zip.

unlocker без проблем удаляет такие файлы/папки

Постоянно с длинными именами возникают проблемы в техотделе. Такая там структура папок. Приходит на буквы вешать пути.

Пользуюсь Far Manager’ом. Он со второй версии может работать с именами практически любой длины. А старые версии да, выдавали ошибку. Справлялся при помощи subst.

Техническое отступление (для программистов)
При использовании юникода в функцию CreateFile и некоторые другие можно передавать очень длинные имена файлов, при условии, что они записаны в UNC-формате (как сетевое имя, начинаются с \\). Для ссылки на локальный файл в UNC-формате можно использовать префикс \\.\ или \\?\. Кстати, так можно создать и файлы с зарезервированными именами CON, NUL и другие:

Ввиду того, что со второй версии Far перешёл на юникод и в нём можно создавать, модифицировать и удалять файлы с зарезервированными именами без проблем, можно предположить, что он внутри использует UNC-пути.1
Конец технического отступления

Демотиваторы (и другие картинки с текстом), которые мне понравились, я сохраняю на диск с именем, содержащим сам текст на картинке из соображений индексации. Знаю, что можно вписать текст в EXIF-метки, но модифицировать скачанный бинарный файл не хочу, поэтому переименовываю. Однажды для картинки задал такое длинное имя (переименовал через IrfanView), что теперь она не открывается через проводник и руки не доходят эту картинку переименовать нормально.

Проблема не в длинном пути к файлу как таковом, а в длине параметров, принимаемых некоторыми API-функциями работы с файлами и каталогами. С точки зрения файловой системы (NTFS, в частности) путь может быть и больше 260 символов, но обратиться к файлу, передавая этот путь целиком, не получится.
При этом любой путь можно легко превратить как в более длинный, так и в более короткий, например переименовав какой-то каталог в середине пути.
Пример:
Было C:\12345\2\67890\файл.txt
Каталог «2» можно переименовать в имя длиной, например, 250 символов (в итоге общая длина пути до каталога «2» составит менее 260 символов, что допустимо, а вот всё что глубже станет недоступным).

Антон: Каталог «2» можно переименовать в имя длиной, например, 250 символов »

Антон, в 250 символов папку переименовать не получится 🙂

Это почему не получится? Вот http://msdn.microsoft.com/en-us/library/windows/desktop/aa365247%28v=vs.85%29.aspx#maxpath у них
путь
D:\256 символов + NULL
вполне получился (3+256+NUL-символ = 260 символов)
А в моем примере
C:\12345\ + 250 симв. + NUL-символ= 9 + 250 + 1 = 260

Антон, вы не теоретизируйте, а пробуйте, тогда узнаете, что не получится. А там и догадаетесь, почему 🙂 Если что, я подскажу.

В Far Manager прекрасно и создается, и переименовывается.

Антон, тогда предположу, что для FAR и ограничение в 260 не помеха, и приведенная вами цитата MSDN на него не распространяется. Я же отвечал вам в контексте ограничения в 260 символов (а не в принципе) — попробуйте в проводнике или cmd.

Всё оказывается ещё смешнее. У WinAPI функции CreateDirectory, как выяснилось, лимит еще меньше — 248 символов:

There is a default string size limit for paths of 248 characters. This limit is related to how the CreateDirectory function parses paths.

На это я вам и намекал, но смешного тут ничего нет (это вытекает из ограничения 260 — подумайте, почему). А как его узнать без чтения документации и ручного подбора максимальной длины? 🙂

Антон: В Far Manager прекрасно и создается, и переименовывается.»

Я писал уже выше, почему Far Manager может оперировать с очень длинными именами.

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

Дмитрий, на OSZone есть форум Лечение.

Рекомендую посмотреть неплохую бесплатную программу ShadowExplorer.
http://www.shadowexplorer.com/

А для чего она служить, можно подробнее её описание? просто еще 1с полетело, для бухгалтеров это катастрофа, не сколько организаций тоже столкнулись с такой проблемой, так и решение не нашли, антивирусные программы её не видят как вирус…

Программа для удобной работы с теневыми копиями.
Про эту программу я написал не для Вас, а в данную обсуждаемую тему.
А Вам нужно обратиться в тему обсуждения лечения зараженных компьютеров.
А лучше обратитесь к специалистам.
Хотя можно попробовать этой программой вытащить необходимые данные.

Да, эту программу читатели рекомендуют в каждой записи, где упоминаются теневые копии 🙂 А что, она позволяет решить поставленную в записи задачу?

У меня было, месяц назад. На сервере сетевой диск. Говорят раньше могли, а сейчас не можем сохранять, ну я предложил укоротить имя файла но все равно вопрос остался, почему раньше да а сейчас нет. Они ведать изменили (удленили) имя как в примере навел Антон.

Когда-то из архива достал файл с огромным именем в нескольких (>10) подкаталогах. Дальнейшие обычные операции с файлом были не возможны. Мне подсказали что и имена подкаталогов учитываются — я переименовал все папки на «1» и это помогло — имя/путь влез в некий максимум. Решение ламера, да.

Попозже я читал о Subst но больше подобной проблемы не встречал.

да сталкивался несколько раз но всегда это было связанно с копированием каких-то файлов из смартфона …………. что на старом WM что на новом Android этих проблем нет а на винде почему-то есть …….. где справедливость то :))))))))

Регулярно сталкиваюсь, когда увольняются сотрудники, и все, что нажито их непосильным трудом, нужно переместить во временное хранилище (своеобразная корзина). Правда у нас 8dot3-имена включены, они и выручают 🙂

Сталкивался с этой бедой при копировании файлов, решил с помощью Far Manager’а.
До простого и элегантного решения с символической ссылкой я тогда не догадался.

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

Сталкивался с ограничениями по работе — при копировании профиля пользователя в папке C:\Users\%username%\AppData\\Local\Lotus\Notes\Data лежат какие-то лотусные файлы с длинными именами, и при копировании проводником система ругается на длину пути. При копировании с помощью robocopy или TotalCommander проблем не возникало.

Однако я уже давно не раскладываю все по папочкам, и уж тем более с такими адскими именами.

Мне вот тоже иногда не хватает длины пути из-за ограничений ОС. Страдает синхронизация с облаками, например.

Когда много различных проектов и подпроектов в работе, без четкой и понятной иерархии папок трудно найти нужную.

Больше всего в ОС Windows 8.1 меня раздражает кривой поиск. Я бы с удовольствием бы пользовался поиском, но ОС заточена под поиск файлов, а не папок. Как результат — длинющаяя портянка файлов, среди которой очень трудно найти нужную папку и быстро в нее перейти. Да и ищет такой поиск долго, несмотря на все включенные индексации и SSD 256 (samsung 840 pro) с примерно половиной свободного места.

«Недавние папки» — тоже далеко не всегда показывают папку, которую я недавно закрыл или в которой создавал файл, или открывал/сохранял файл через какую-либо программу. Т.е. «недавние папки» работают как то очень своеобразно.

Итого, без четкой иерархии с понятными (и длинными) названиями папок, у многих из которых есть нумерация в начале папки (чтобы сортировка была не по алфавиту, а как нам в компании удобно, нумерация папок у проектов соответствует жизненному циклу проекта) и есть дата (формата 2014-09-11), не обойтись.

Больше всего в ОС Windows 8.1 меня раздражает кривой поиск. Я бы с удовольствием бы пользовался поиском, но ОС заточена под поиск файлов, а не папок. Как результат — длинющаяя портянка файлов, среди которой очень трудно найти нужную папку и быстро в нее перейти.

Попробовал, вбивал в строку поиска в проводнике. OC — Win 8.1

Результат — опять большая портянка всех файлов (которые, походу, входят в папку, которую я ищу), а не папок.
Да, в пути подсвечивается папка (и то, не у всех файлов, а у тех, у которых нужная папка «ближе» к корню диска.

У остальных файлов даже папка не подсвечивается, а скрыта за многоточием: http://prntscr.com/4m0qne

Итого, способ такой-же не эффективный. В сам поиск писать дольше (надо написать папка:) и на выдаче опять портянка файлов вместо, например,

5 папок. Или я не понял как правильно делать=)

Вадим, и про «недавние места» можете еще прокомментировать? Есть способ как то улучшить работу с ними?

Антон, сорри, писал по памяти с телефона 🙂 Правильный фильтр вид:=папка. Помимо ввода вручную, в 8+ выбирается из меню Тип (издержки локализации), когда курсор в поле поиска.

Недавние места не поддаются настройке.

Спасибо за подсказку!

не айс, конечно, но хотя бы так. файлы я совсем практически не ищу, а папки — постоянно.

Антон: чтобы сортировка была не по алфавиту, а как нам в компании удобно, »

Эх, а в ХР это делалось банальным перетаскиванием мышкой в нужный порядок )))

Антон: Я бы с удовольствием бы пользовался поиском, но ОС заточена под поиск файлов, а не папок. »

Everything в помощь- там есть фильтр «Папки» (запоминается при выборе), и поиск мгновенный.

По теме записи- как то не сталкивался.

Я попробовал Everything, очень понравилась скорость поиска. Все мгновенно находит вообще мгновенно, и файлы, и папки. Встроенный поиск Windows нервно курит в сторонке по скорости поиска=)

Поиск папок в 8.1 абсолютно мгновенный, также как и поиск файлов. Просто вводите в строке Поиска Проводника 2-3 буквы — и результат на лицо. Следует напомнить, что содержимое должно быть проиндексировано. Вот пример:
https://cloud.mail.ru/public/7ffea94e318e%2F%D0%9F%D0%BE%D0%B8%D1%81%D0%BA.PNG

Пользуюсь Total Commander — он адекватно работает с длинными путями, до проблем «Проводника» и извращений с этим связанными мне уже давно никакого дела нет.

Алексей, зато у вас другие проблемы (кстати, я угадал ваш ФМ 🙂

Total Commander сейчас и 64-битный есть. Так что если юзать его на 64-битный ОС, то данной проблемы не должно быть.

Есть, но я же не придумывал эту проблему — мне ее доставили в качестве претензии к моему скрипту 🙂

Копировал бэкап со сгоревшего компа на свой (Win7) стандартным проводником. В итоге общий путь до файла был очень длинным и проводник сказал, что скопировать файл нельзя. В итоге взял totalcommander и всё скопировалось только лишь с одним запросом о том, что путь слишком длинный.

Самый простой выход в этом вопросе — не заниматься извращениями и не создавать странную древовидную структуру. Для быстрого доступа к информации существуют более легкие и простые пути. Читайте Справку Windows или блог Стеркина.
зы. Но мы не ищем легких путей)))

Когда-нибудь работали на предприятии с активно развивающейся базой по номенклатуре, КД и пр.? Вопрос риторический, можете не отвечать.

Здравствуйте!
Очень полезный пост. Буквально месяц назад ломал голову как обойти это ограничение, и как раз по причине описанной вами. Проблему решил этим же методом, я так понимаю что это единственный метод.

Алексей, не единственный — в статье их два, а в комментариях есть еще пара (я добавил их в конец записи).

Интересное решение.
Сам при таких проблемах делал либо при помощи программы killcopy, еще стоит terracopy. Totalcommander редко использую.

Но как вы считаете, как лучше сделать, если ты, допустим, поставил на копирование кучу файлов на внещний hdd, он тебе перекачивает, потом говорит, что ай ай ай длинное имя. Но не дает возможности переименовать или что-то еще. Только пропустить и прервать. А вы понимаете, что потом заниматься поиском пропущенных файлов ой как не хочется. Так вот, как на таком этапе дешевле всего решить проблему?

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

Я решил эту проблему через подключение сетевого диска. Подключаем сетевой диск на папку выше той папки, где удален файл ну, а дальше восстанавливаем файл

А что мешало восстановить в любую папку локального диска?

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

Vadim Sterkin: А что мешало восстановить в любую папку локального диска?
»

Отсутствие свободного места на локальном диске.

Я храню разные заметки по работе в многих папках и подпапках. А иногда в такой под-под-под-…папке сохраняю вэб-страницу с длинным исходным названием. И все бы ничего — но при попытке скопировать эту структуру, например, из rar-архива на домашний компьютер — получаю отказ.
Есть ли какое-то средство (программа) для мониторинга/проверки текущей структуры папок-файлов на приближение к 250символам?

OneNote и поиск по нему — отличная замена маниакальной вложенности папок.

Спасибо. А файлики в документ OneNote можно вложить/прикрепить?

Проблемы с ограничением на длину файлов — постоянная проблема тех, кто сохраняет страницы из веба целиком. Если только не перенести предлагаемую по умолчанию папку загрузок. При этом, как правило, браузеры позволяют создавать такие файлы/каталоги, а система не позволяет их копировать, или читать.

Я после приобретения компа поставил три оси на три раздела- win xp, win 7 32bit, win 7 64 bit.- к первой я привык, а семёрки поставил т.к. на сайте произв матплаты не было драйверов для XP, только для 7- комп 2012 г вып. Захотел переместить сохранённые интернет-страницы, а семёрка сказала- длинные имена. Перезагрузил на ХР и всё переместил без возражений. Так паранойя ( иметь несколько осей на всякий пожарный) спасла.

файловая система не поддерживает такие длинные имена исходных файлов как скопировать. Смотреть фото файловая система не поддерживает такие длинные имена исходных файлов как скопировать. Смотреть картинку файловая система не поддерживает такие длинные имена исходных файлов как скопировать. Картинка про файловая система не поддерживает такие длинные имена исходных файлов как скопировать. Фото файловая система не поддерживает такие длинные имена исходных файлов как скопироватьМаксим Левин

Копируйте файлы с помощью файлового менеджера Total Commander и не морочтесь)

Максим, без ТС вы лапки вверх поднимите сразу?

Приветствую
Сейчас на вин 10
Заметил что перестали копироваться некоторые файлы через софт синхронизации, попробовал скопировать вручную — ошибка «файловая система не поддерживает такие длинные имена …», подумал может с внешним винтом что, форматнул его, ничего не изменилось. Работал с этими файлами еще на вин7, потом на вин8-8.1 проблем не замечал, может поддержка както выключилась?
теперь эти файлы не копируются и не удаляются (только через unlocker), ошибок на диске не обнаружены

файловая система не поддерживает такие длинные имена исходных файлов как скопировать. Смотреть фото файловая система не поддерживает такие длинные имена исходных файлов как скопировать. Смотреть картинку файловая система не поддерживает такие длинные имена исходных файлов как скопировать. Картинка про файловая система не поддерживает такие длинные имена исходных файлов как скопировать. Фото файловая система не поддерживает такие длинные имена исходных файлов как скопироватьДмитрий Львов

Когда давалось бесплатное обновление на Windows 10 обновился с 8. Однако пользоваться сырой системой не хотел. Забэкапил ее с помощью акрониса. Сейчас хочу восстановить. Установил пиратскую 10 и подключил как диск резервную копию. Из него хочу скопировать файлы оригинальной системы, чтобы потом заменить ими пиратку. При копировании в отдельную папку столкнулся со слишком длинными именами и путями. Подскажите, есть ли файловый менеджер которая обходит при копировании все эти ограничения?

Александр, все ответы есть в статье

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

Спасибо, очень помогли ваши статьи спасти файлы после трояна-шифратора.

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

Супер! Это помогло исправить ошибку uTorrent:
Системе не удается найти указанный путь.
Спасибо.

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

Проблема высасана из пальца.
1) Архивируем нужное в iso архив с помощью UltraISO
2) Копируем(перемещаем) в целевую папку
3) Извлекаем из архива всё той же UltraISO.

Решение высосано из пальца. Это дольше, да и вообще не прокатит, если UltraISO нет, а покупать его организация не будет.

Far помог, прочитал у Вас в блоге.
столкнулся когда разархивировал бэкап сайта из Unix системы.

p.s.
и заодно удалил папку которая имело неизвестное количество вложенности, которую виндовс не удалял никаким макаром, robocopy и bat не помогал (он помог переименовать в 1символ что не уменьшило длину пути).

в общем остатки от вируса на Unix легко скопировался в виндовс и не удалялся стандартными средствами.
Неясно конечно как ОНО изначально скопировалось обычными средствами виндовс.

Когда-то искал решение подобной проблемы.
Помогла небольшая утилитка Long Path Fixer for Windows.
Бесплатная, безустановочная.
С ее помощью можно переместить, скопировать, или удалить любой файл с любой длиной пути.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *