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

Содержание:

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

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

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

Цитирую письмо:

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

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

\\localhost\D$\sales\0-Коммерческий отдел (общий ресурс-обмен)\Общий ресурс (тел., реестры,реквизиты)\КЛИЕНТЫ С 2014\Стратегия\Договор аренды с выкупом_Клиент_27.06.14\Вар дог._25% аванс_с выкупом_17.07.14 (Today, July 22, 2014, 3 hours ago)\3 вар_договор аренды с правом выкупа_6443-001 от 17.07.14.pdf

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

Снимок экрана любезно предоставил Вадимс Поданс

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

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

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

mklink /d c:\link «\\localhost\D$\sales\0-Коммерческий отдел (общий ресурс-обмен)\Общий ресурс (тел., реестры,реквизиты)\»

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

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

subst V: «\\localhost\D$\sales\0-Коммерческий отдел (общий ресурс-обмен)\Общий ресурс (тел., реестры,реквизиты)\»

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

Эксперимент

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

Код командного файла для экспериментов

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

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

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

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

Дискуссия

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

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

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

Почему длина имени файла даже проблема в Windows?

Существует длинная история длин файлов, что является проблемой для операционных систем, таких как Windows. Было время, когда вы не могли иметь имена файлов длиннее 8 символов плюс 3-символьное расширение файла. Лучшее, что вы могли сделать, это что-то вроде myresume.doc. Это было ограничение в отношении дизайна файловой системы.

Все стало лучше, когда вышли новые версии Windows. Мы перешли от старой ограниченной файловой системы к так называемой файловой системе новой технологии (NTFS). NTFS привела нас к тому, что имя файла может быть длиной 255 символов, а длина пути к файлу потенциально может достигать 32 767 символов. Так как же мы можем иметь слишком длинные имена файлов?

В Windows есть вещи, известные как системные переменные. Это переменные, от которых зависит функционирование Windows, потому что Windows всегда будет знать, что означают переменные и где они находятся, даже когда мы перемещаем биты и байты повсюду. Системная переменная MAX_PATH – это та, которая ограничивает имена файлов и пути к файлам до 260 символов.

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

Как мы это исправим?

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

Когда вы пытаетесь удалить, переместить файл или папку в Windows, то можете наткнуться на сообщение, что «Операция не может быть завершена, так как файл или папка открыта в другой программе». Ошибка появляется, когда удаляемый файл или папка заняты в другой программе. Одним словом, файл в данный момент работает и вы его не сможете удалить. Это сделано в первую очередь для уменьшения несогласованности данных. Приведу просто пример, когда вы работаете в Word и ваш рабочий файл в этой программе открыт, то вы не сможете его удалить. Для этого нужно закрыть саму программу Word, а потом уже удалять файл. Может быть так, что скрытая служба не дает вам удалить файл или папку. Давайте разберем возможные способы, чтобы устранить ошибку, когда файл открыт в другой программе и мы его не можем удалить.

1. Перезагрузите ПК

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

2. Диспетчер задач

В Windows 10/7/8.1 иногда бывает такой момент, когда мы закрываем программу, то она может остаться работать в фоновом режиме. По этой причине нужно завершить процесс связанный с файлом или папкой, которую вы хотите удалить. Нажмите Esc+Shift+Ctrl, чтобы открыть диспетчер задач. В диспетчере задач определите, что за процесс может быть связан с вашим удаляемым файлом или папкой. Нажмите по нему правой кнопкой мыши и выберите «Снять задачу«. После этого попробуйте удалить файл, который был занят программой.

3. Перезапуск Explorer.exe

Ошибка «Файл открыт в другой программе» может быть связана с проводником (Explorer.exe), который имеет проблемы с памятью или кешированными файлами. Откройте обратно диспетчер задач, найдите процесс «Проводник«и ниже нажмите на кнопку «Перезапустить«. Попробуйте удалить файл.

4. Монитор ресурсов

Нажмите Win+R и введите resmon.exe, чтобы открыть монитор ресурсов. Далее найдите графу «Связанные дескрипторы» и введите в поиск имя файла. Далее вам отобразится один или несколько процессов связанных с вашим файлом. Нажмите по каждому из них правой кнопкой мыши и выберите «Завершить процесс«, после чего попробуйте удалить папку или файл.

5. Запустить папку в отдельном процессе и отключить миниатюры

Этот способ отлично подойдет, если вы пытаетесь удалить файл по сети и вам выдает ошибку — «файл открыт в другой программе». Нажмите сочетание кнопок Win+R и введите control.exe folders, чтобы открыть параметры папок. Перейдите во вкладку «Вид» и выделите галочками две функции:

  1. Всегда отображать значки, а не эскизы.
  2. Запускать окна с папками в отдельном окне.

6. Удалить временные файлы

Временные файлы могут мешать вам удалить файл, который занят программой. Нажмите Win+R и введите по очереди команды ниже. Вам нужно удалить все содержимое в этих двух папках:

  1. %temp%
  2. temp

7. Антивирус

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

8. Корзина

Если у вас есть файлы в корзине, то очистите корзину полностью. Иногда файлы в корзине могут быть функционировать и связаны с вашей проблемой. Нажмите правой кнопкой мыши по корзине и выберите «Очистить корзину«.

Почему длина имени файла является проблемой в Windows?

Существует большая история длины файлов, что является проблемой для операционных систем, таких как Windows. Было время, когда вы не могли иметь имена файлов длиннее 8 символов плюс 3-символьное расширение файла. Лучшее, что вы могли сделать, это что-то вроде myresume.doc. Это было ограничение в отношении дизайна файловой системы.

Все стало лучше, когда вышли новые версии Windows. Мы перешли от старой ограниченной файловой системы к так называемой файловой системе новой технологии (NTFS). NTFS привела нас к тому, что имя файла может быть длиной 255 символов, а длина пути к файлу потенциально может достигать 32 767 символов. Так как же мы можем иметь слишком длинные имена файлов?

В Windows есть вещи, известные как системные переменные. Это переменные, от которых зависит функционирование Windows, потому что Windows всегда будет знать, что означают переменные и где они находятся, даже когда мы перемещаем биты и байты повсюду. Системная переменная MAX_PATH — это та, которая ограничивает имена файлов и пути к файлам до 260 символов.

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

. Имя файла (ов) будет слишком длинным для целевой папки

Недавно, просматривая некоторые из моих резервных файлов и папок на моем ПК с Windows, я сталкивался с некоторыми старыми файлами резервных копий, которые я хотел удалить. Мне не нужно было использовать старую резервную копию, поэтому мне нужно было удалить сжатый файл .tar.

Но когда я продолжал его удалять, я получил следующее сообщение об ошибке:

Имя файла слишком длинный для целевой папки

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

В стандартной системе имен файлов Windows общее имя не может, или путь превышает 259 символов. Сюда входят путь к папке, имя файла и расширение файла. Если это так, то при попытке удалить его вы получите эту ошибку.

Ограничение максимальной длины пути : в Windows API (с некоторыми исключениями, описанными в следующих параграфах) максимальная длина пути MAX_PATH, который определяется как 260 символов.

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

Например, максимальный путь на диске D представляет собой «D: some 256-символьная строка пути», где «» представляет невидимый завершающий нулевой символ для текущей кодовой страницы системы. (Символы используются здесь для визуальной ясности и не могут быть частью допустимой строки пути) говорит MSDN.

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

Теперь в моем случае полный путь к папке:

D: Резервные копии сайта Разное backup-4.7.2012_23-41-31_thegadget.tar backup-4.7.2012_23-41-31_thegadget backup-4.7.2012_23-41-31_thegadget homedirect 2 public_html2 wp-content2 uploads 2011 08

И имя файла было очень долго — как Music-producer- … -and-video-games.jpg — как видно на изображении.

Я открыл его и попытался удалить или переименовать файл. Мне даже не предложили вариант сделать это. Если вы можете переименовать его, отлично, но мне не предложили этот вариант.

Итак, я пошел «Назад» в свою подпапку и попытался удалить его. Нет успеха. Я получил такое же сообщение об ошибке. Затем я использовал опцию Переместить в папку , чтобы переместить папку на мой D-диск . Это сработало! Путь вдруг стал короче, и я смог удалить.

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

Вы также можете использовать бесплатный Long Path Fixer , чтобы исправить ошибки Path Too Long в Windows.

Если ничего не помогает, вы можете захотеть посмотрите на этот поток Microsoft, где были предложены некоторые расширенные способы использования CMD и Robocopy.

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

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

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

Но имя файла или папки у Вас короткое, например, «Фото из отпуска»? Дело в том, что «глупая» система воспринимает весь путь к файлу как его имя. Если Ваш файл или папка лежат где-то слишком глубоко в файловом менеджере, то его имя для неё будет выглядеть примерно так…

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

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

Эксперимент

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

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

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

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

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

Что может мешать удалению файлов?

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

  1. Нет прав доступа к файлу и папке. В настройках объекта находится ограничение на доступ к информации. Для изменения прав я кликаю по файлу правой кнопкой мыши (свойства → безопасность).

Изменение прав доступа

  1. Данные заняты другим процессом. Я выключаю программы, в которых задействован файл. Далее повторяю операцию удаления.

    Процессы в диспетчере задач

  2. Название содержит недопустимый фрагмент имени (например, точка или пробел в конце имени).
  3. Длинный путь к файлу. Система имеет ограничения на максимальный уровень длины пути. Если данный предел превышен, стандартный доступ является затрудненным.
  4. Повреждение системы данных. Поврежденные сектора жестких дисков или сбои в программном обеспечении также влияют на невозможность удаления папок и файлов. Для восстановления информации я использую служебную программу Chkdsk в командной строке. Разработка качественно анализирует состояние системы персонального компьютера. Чтобы запустить проверку повреждения файловой системы, нужно открыть командную строку от имени администратора (вводим в поисковую строку cmd, жмем на результат поиска правой кнопкой мыши и выбираем «Запуск от имени администратора») и ввести команду chkdsk /f c:
  5. Удаляемый файл является вирусом. В таком случае я пользуюсь лицензированной программой, чтобы исцелить систему.
  6. Объем данных составляет ноль килобайт. Такие папки выступают продуктом работы троянов и червей.
  7. Системная информация. Операционная система не в состоянии удалять саму себя. Для решения проблемы потребуется вторая Windows на ПК и диски LiveCD.
  8. Блокирование антивирусной программой. Часто средство защиты помещает файл в карантин. Компьютер блокирует доступ к данным, чтобы избежать заражения.
  9. Процесс удаления требует от пользователя права администратора.
  10. Файл используется другими пользователями по локальной сети.
  11. Устройство на 100% защищено от записи. Часть карт формата SD и USB-флешки оснащены специальными переключателями для блокирования устройств.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

subst Z: «C:UsersUserDesktop3333333333333333333333333333333333333333333333333333111»

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

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

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

Ошибка «Слишком длинный целевой путь» – что делать?

При попытке скопировать, переместить и удалить файлы или папки система может заблокировать это действие ошибкой «слишком длинный целевой путь». Она возникает по причине того, что Windows имеет ограничение на длину пути, число символов в котором не должно превышать 260 символов.

Проблема возникает на уровне вложенности приложений и не связана с ограничением NTFS. В этом случае количество символом ограничивается библиотекой Win32 API. Поэтому большинство стандартных приложений, включая проводник Windows, не будут обрабатывать объекты, длина пути к которым превышает 260 символов.

Переименование расширений

Если ошибка возникает при перемещении архивных файлов Zip или Rar, попробуйте временно переименовать их в формат «txt» и после переноса вернуть обратно.

Для этого щелкните правой кнопкой мыши на архив и выберите «Переименовать». Затем измените расширение на «txt».

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

После перемещения файла, верните ему первоначальное расширение (zip или rar).

Если этим способом не удалось переместить архивы по причине слишком длинного целевого пути, перейдите к следующему решению.

Удаление с помощью утилиты DeleteLongPath

Если нужно удалить папку, которая вложена по слишком длинному пути, попробуйте сделать это с помощью бесплатной утилиты DeleteLongPath. Она предназначена для удаления структуры папок и всех содержащихся в ней вложенных объектов.

Сделайте запрос в интернете «DeleteLongPath» и перейдите на указанный сайт.

После загрузки извлеките файл из zip-архива и откройте.

Кликните на кнопку «Обзор», чтобы указать расположение папки, и нажмите на «Удалить». В следующем окне подтвердите действие, и дождитесь завершения удаления.

Включение поддержки для работы с глубоко вложенными объектами

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

Откройте Редактор реестра командой regedit из окна «Выполнить» (Win + R).

Раскрывая вложенную структуру на левой панели, перейдите в следующий раздел:

HKEY_LOCAL_MACHINE – SYSTEM – CurrentControlSet – Control – FileSystem

В разделе FileSystem дважды кликните на параметре LongPathsEnabled, чтобы перейти в его установки.

В поле «Значение» установите «1» и примените изменения на «ОК».

Закройте Редактор реестра и попробуйте выполнить действия с папками, которые не удавались из-за ошибки слишком длинного целевого пути.

Использование команды xcopy

Если по-прежнему не удается скопировать папку, целевой путь к которой слишком длинный, попробуйте это сделать с помощью команды xcopy, запущенной из командной строки с правами администратора.

Запустите командную строку от имени администратора с помощью системного поиска.

В консоли запустите следующую команду:

xcopy *путь к источнику* *папка назначения* /O /X /E /H /K

Копирование должно произойти без ошибки.

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

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

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

mklink /d c:\link "\\localhost\D$\sales\0-Коммерческий отдел (общий ресурс-обмен)\Общий ресурс (тел., реестры,реквизиты)\"

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

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

subst V: "\\localhost\D$\sales\0-Коммерческий отдел (общий ресурс-обмен)\Общий ресурс (тел., реестры,реквизиты)\"

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

Почему длина имени файла является проблемой в Windows?

Существует большая история длины файлов, что является проблемой для операционных систем, таких как Windows. Было время, когда вы не могли иметь имена файлов длиннее 8 символов плюс 3-символьное расширение файла. Лучшее, что вы могли сделать, это что-то вроде myresume.doc. Это было ограничение в отношении дизайна файловой системы.

Все стало лучше, когда вышли новые версии Windows. Мы перешли от старой ограниченной файловой системы к так называемой файловой системе новой технологии (NTFS). NTFS привела нас к тому, что имя файла может быть длиной 255 символов, а длина пути к файлу потенциально может достигать 32 767 символов. Так как же мы можем иметь слишком длинные имена файлов?

В Windows есть вещи, известные как системные переменные. Это переменные, от которых зависит функционирование Windows, потому что Windows всегда будет знать, что означают переменные и где они находятся, даже когда мы перемещаем биты и байты повсюду. Системная переменная MAX_PATH — это та, которая ограничивает имена файлов и пути к файлам до 260 символов.

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

Почему длина имени файла является проблемой в Windows?

Существует большая история длины файлов, что является проблемой для операционных систем, таких как Windows. Было время, когда вы не могли иметь имена файлов длиннее 8 символов плюс 3-символьное расширение файла. Лучшее, что вы могли сделать, это что-то вроде myresume.doc. Это было ограничение в отношении дизайна файловой системы.

Все стало лучше, когда вышли новые версии Windows. Мы перешли от старой ограниченной файловой системы к так называемой файловой системе новой технологии (NTFS). NTFS привела нас к тому, что имя файла может быть длиной 255 символов, а длина пути к файлу потенциально может достигать 32 767 символов. Так как же мы можем иметь слишком длинные имена файлов?

В Windows есть вещи, известные как системные переменные. Это переменные, от которых зависит функционирование Windows, потому что Windows всегда будет знать, что означают переменные и где они находятся, даже когда мы перемещаем биты и байты повсюду. Системная переменная MAX_PATH — это та, которая ограничивает имена файлов и пути к файлам до 260 символов.

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

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

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

Adblock
detector