Каталог расширений

Популярные теги

3gp       avi       fb2       jpg       mp3       pdf      

Как снять ограничение на длину имени файла windows 7


Исправить проблему с длинным именем файла

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

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

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

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

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

Ограничение длины файлов в Windows особенности и тонкости

– Автор: Игорь (Администратор)

Вы когда-нибудь сталкивались с сообщением об ошибке в Windows, в котором говорилось бы о не возможности скопировать (переместить) файл и о том, что имя одного из файлов слишком большое? Если да, то вы, наверное, задавались вопросом почему такое сообщение появилось (пример ниже на картинке). В данной статье будут объяснены особенности и тонкости ограничений, которые накладываются на длину имени файла в Windows.

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

Примечание: Если вы не знали, то в большинстве файловых систем каталог - это разновидность файла, но с нулевым размером данных.

Существует множество различных файловых систем, каждая из который по-своему определяет структуру имени файла, включая способ построения пути к файлу. К примеру, на небольших usb устройствах хранения данных, обычно, используется система FAT32. А на оптических дисках (CD/DVD) обычно используется UDF или ISO 9660. На системных дисках последних ОС Windows используется файловая система NTFS, которая и станет предметом данной статьи (как наиболее распространенная для Windows).

Примечание: К примеру, на системных дисках с Windows XP, часто, использовалась файловая система FAT32. Однако, у нее был существенный (для сегодняшнего времени) недостаток — это ограничение на максимальный размер файла в 4 Гб. NTFS же не имеет такого ограничения.

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

Ограничения на имена файлов в Windows

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

Понятия «путь» и «имя файла»

Очень часто в компьютерной литературе используются термины «путь» и «имя файла» под разными значениями. Обычно под словом «путь» понимают адрес или расположение файла, т. е. диск, папка и подпапки в которых расположен файл. Однако Microsoft и другие считают, что в путь к файлу входит не только его расположение но и само имя файла. А некоторые подразумевают под словом «путь» только имена файла и папок, в которых он расположен, без указания диска. Некоторые пользователи полагают, что «имя файла» не включает расширение. В данной статье расширение всегда является частью имени файла. На примере ниже синим цветом выделен путь к файлу, а красным имя файла.
X:\папка\подпапка\файл.расширение

Зарезервированные символы и имена

Большинство часто употребляемых символов разрешается использовать в имени файла. Имя файла не должно содержать „<” (знак меньше),  „>” (знак больше), „:” (двоеточие), „«” (двойные кавычки), „/” (слеш), „\” (обратный слеш), „|” (вертикальная черта), „?” (вопросительный знак), „*” (звездочка), а также не может заканчиваться точкой или пробелом. Файлы также нельзя называть зарезервированными именами устройств: CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, и LPT9.

Ограничения на длины имен файлов и путей

Существуют ограничения на длину имени файла и на длину пути. Абсолютное ограничение длины имени файла вместе включая путь к нему равно 260 символам. Этот предел называют термином MAX_PATH. На самом же деле на практике пределы для имен еще меньше из-за ряда других ограничений. Например, каждая строка на конце должна содержать так называемый нулевой символ, который обозначает конец строки. Несмотря на то, что маркер конца строки не отображается, он учитывается как отдельный символ при подсчете длины, а значит остается 259 символов доступных для имени файла и пути к нему. Первые три символа в пути используются для обозначения диска (например, C:\). Это уменьшает предел для имен папок, подпапок и файла до 256 символов.

На имя объекта (папки или файла) наложено ограничение длины 255 символов. Этот предел действителен только, если объект не расположен внутри папки. Так как при расположении объекта внутри папки, сумма длин всех папок в которых он расположен, разделителей и имени объекта ограничена 256 символами, то предел длины самого имени объекта меньше 255 символов.

Что делать, если не удаляется файл с длинным именем?

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

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

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

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

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

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

По теме: Как обойти ограничение на длину в 260 символов в Windows 10

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

Открываем командную строку. Для этого нажимаем сочетание 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» и выбираем пункт «Добавить к архиву».

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

Это интересно: 7-Zip, как альтернатива WinRAR

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

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

Как удалить файл или папку с длинным названием, если Windows не даёт этого сделать!

В данной статье я хочу поделиться с вами парочкой способов решений одной проблемы в Windows, с которой уже несколько раз сталкивался сам. Проблема заключается в том, что Windows не даёт возможность удалить файл или папку с очень длинным названием, а конкретно — путь к которым слишком длинный и превышает размер в 260 символов. При попытке удалить такой файл или папку, вы получите сообщение: «Файловая система не поддерживает такие длинные имена исходных файлов». Такая ситуация может возникнуть, например, тогда, когда у вас сложная структура папок в виде большой «матрёшки». К примеру, в одной папке есть другая папка, в ней в свою очередь ещё одна папка, в ней ещё одна и так далее. И в самом конце этого пути, в последней папке лежит нужный файл. Так вот, если в сумме все названия этих папок по количеству символов превысят 260, то в итоге система не даст вам удалить одну из папок или сразу несколько в самом конце этой «матрёшки» :) А если проблема конснулась файла, только вы его и открыть не сможете, переименовать или даже скопировать. Проще говоря, такой файл будет недоступен!

Вот пример структуры папок, которую я назвал «большой матрёшкой»:


как удалить папку с длинным названием

Как видим, на диске «D» (Данные) есть исходная папка видео, в ней папка «Фильмы», в ней «Всё что нужно для просмотра фильмов» и далее таким же образом папка в папке. При этом многие папки имеют длинные названия названия — больше 10-15 символов, что в сумме даст объём символов во всех названиях больше 260. И если в конце такой «матрёшки» будет лежать файлик, то может получиться так, что работать с ним вы не сможете… Иногда сама система не даёт создать в конечном итоге папку или файл превышающий допустимое количество символов, но иногда почему-то такое происходит.

В начале для новичков поясню, что такое путь к файлу и папке. Путь – это так называемый адрес в компьютере, по которому располагается файл или папка. Например, файл под названием «Мой файл.txt» лежит на локальном диске D: в папке «Документы». Тогда путь к этому файлу будет выглядеть так:

D:\Документы\Мой файл.txt

Или, например, вот так будет выглядеть путь из примера выше, где я показал сложную структуру папок.

D:\Видео\Мои фильмы\Всё что нужно для просмотра фильмов\Программы для просмотра фильмов\Как открывать фильмы MP4\Список фильмов-примеров MP4\Перечень программ для открытия MP4\Что нельзя делать при открытии файлов MP4

Как видно, количество символов в пути выше велико и не исключено то, что в конце будет лежать файл или папка с длинным названием, который вы не сможете удалить.

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


как удалить папку с длинным названием

Я попробовал искусственно воссоздать проблему и вот что у меня получилось.

На диске «D» создал папку коротким именем «1» и в неё поместил файл с очень длинным названием. Вот пример:


как удалить папку с длинным названием

Теперь я ту папку «1» переименовываю тоже в какое-то очень длинное название, например:


как удалить папку с длинным названием

Что интересно, Windows свободно даёт переименовать папку вот в такое длинное название, несмотря на то, что количество символов в названии этой папки + названии файла уже превышает 260! Ну и после такого вот переименования папки в длинное название, я уже не могу удалить файл, расположенный в ней и получаю ошибку, показанную выше на изображении.

Или вот ещё пример… Я обслуживаю сайт Московского приборостроительного техникума, в котором ранее работал на полную ставку и иногда для тестирования каких-то новых «плюшек» для сайта использую копию сайта на своём компьютере. А то вдруг я что-то нехорошее установлю и сайт на хостинге умрёт? :) А так я у себя на компьютере проверяю и если всё в порядке, то уже настраиваю на реальном сайте, расположенном на хостинге. Так вот, один раз я перенёс себе с хостинга весь сайт чтобы протестировать одну вещь и после того как закончил работать, решил удалить с компьютера папку с сайтом. Ведь весит она порядке 6 Гб. Сайт удалился весь, кроме ряда папок. Я начал смотреть и увидел, что не удалились те папки, которые содержали в себе файл с длиннющим названием в виде иероглифов:


как удалить папку с длинным названием

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

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

Я пробовал 2 способа как можно удалить папку / файл с длинным названием в пути к ним. Оба они технически не сложные (особенное 1-й), поэтому, думаю, сможет справиться новичок если выполнит всё точно также как я показываю:

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

    Тогда попробуйте просто переименовать папку, в которой лежит файл с длинным названием, например, в «1». Вернусь к одному из примеров выше. Вот имеется папка с длинным названием:


    как удалить папку с длинным названием

    Переименовываю через стандартный проводник Windows название той папки в «1» и вот как теперь выглядит путь к файлу:


    как удалить папку с длинным названием

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

    Если же у вас длинное дерево папок, т.е. как матрёшка, в одной папке другая, в ней ещё, потом ещё, то переименовывать начинайте с самой первой папки из этой матрёшки. Не с последней по списку, а с первой!

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

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

    Допустим у вас есть примерно такой вот длинный путь:

    D:\Видео\Мои фильмы\Всё что нужно для просмотра фильмов\Программы для просмотра фильмов\Как открывать фильмы MP4\Список фильмов-примеров MP4\Перечень программ для открытия MP4\Что нельзя делать при открытии файлов MP4

    Предположим, что в самой последней папке у нас лежит какой-то проблемный файл, с которым мы не можем работать, поскольку путь к нему, как видим, весьма приличной длинны :)

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

    Для подключения виртуального диска нам понадобится так называемая командная строка Windows, т.е. консоль.

    Открыть её можно через поиск Windows. В поиске так и наберите «Командная строка»:


    как удалить папку с длинным названием

    В окне командной строки нам нужно набрать команду:

    subst буква_виртуального_диска «путь_к_папке»

    Букву диска вы можете поставить любую, только чтобы она уже не была занята одним из локальных дисков. Например, у вас есть локальный диск C и D, а значит виртуальный диск вы уже не сможете обозвать той же буквой. Можно назвать, например, буквой «X», потому что она редко у кого используется в Windows.

    В качестве пути к папке вы вставляете путь к той папке, которую хотите подключить как виртуальную. Как я уже говорил, в моём примере виртуальной папкой сделаем «Программы для просмотра фильмов», а значит путь нужно указать вот такой:

    D:\Видео\Мои фильмы\Всё что нужно для просмотра фильмов\Программы для просмотра фильмов\

    Итак, итоговая команда в моём случае будет выглядеть вот так:

    subst X: «D:\Видео\Мои фильмы\Всё что нужно для просмотра фильмов\Программы для просмотра фильмов\»


    как удалить папку с длинным названием

    Чтобы выполнить введённую команду, нажимаем клавишу «Enter» на клавиатуре. Виртуальный диск будет создан.

    Теперь перейдём в проводник Windows, зайдём в раздел «Этот компьютер» (или «Компьютер») и видим там созданный виртуальный диск:


    как удалить папку с длинным названием

    Отличить его можете по букве. Я присваивал букву «X» виртуальному диску. Теперь если открыть этот виртуальный диск, то мы сразу окажемся в папке «Программы для просмотра фильмов». Т.е. мы взяли и срезали нафиг половину пути к конечной папке.

    Для сравнения…

    Ранее путь к конечной папке выглядел так:

    D:\Видео\Мои фильмы\Всё что нужно для просмотра фильмов\Программы для просмотра фильмов\Как открывать фильмы MP4\Список фильмов-примеров MP4\Перечень программ для открытия MP4\Что нельзя делать при открытии файлов MP4

    После подключения виртуального диска к папке «Программы для просмотра фильмов» путь к конечной папке выглядит так:

    X:\Как открывать фильмы MP4\Список фильмов-примеров MP4\Перечень программ для открытия MP4\Что нельзя делать при открытии файлов MP4

    Чувствуете разницу? Путь сокращён в два раза, поскольку буква диска сразу же направляет нас к папке в средине пути :) А поскольку путь сильно сокращён, наверняка теперь вы сняли ограничение по символам в названиях файлов и папок и сможете удалить файл или папку с длинным названием!

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

    Для этого снова откройте командную строку Windows и введите команду:

    Subst буква_виртуального_диска /d

    В моём случае буква диска «X», поэтому команда будет выглядеть вот так:


    как удалить папку с длинным названием

Когда я думал над вариантами решения проблемы, как удалить папку или файл с длинным названием, в интернете находил ещё такой вот вариант: удалить проблемный файл через программу «Total Commander». Попробовал, нифига не получилось, поэтому и советовать такой способ не стал :)) Да и способ, даже если он у кого-то бы и заработал, честно говоря не прикольный, потому что приходится ставить дополнительную программу на свой компьютер ради удаления одного лишь файла или папки с длинным названием…

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

На этом всё! До скорых встреч в следующих статьях ;)

Имя файла или расширение слишком длинное

Автор Белов Олег На чтение 10 мин. Просмотров 1000 Опубликовано

Системные ошибки могут возникнуть рано или поздно, и многие пользователи сообщили об ошибке ERROR_FILENAME_EXCED_RANGE. За этой ошибкой часто следует сообщение об ошибке Имя файла или расширение слишком длинное , поэтому сегодня мы покажем вам, как это исправить в Windows 10.

Имя файла или расширение слишком длинное [FIX]

Исправить – ERROR_FILENAME_EXCED_RANGE

Решение 1. Изменить имя каталога

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

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

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

Решение 2 – Создайте сетевой диск

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

  1. Найдите папку, в которой находится проблемный файл, и щелкните по нему правой кнопкой мыши. Выберите в меню Поделиться с> определенными людьми .
  2. Выберите пользователя или группу, с которой вы хотите поделиться своим файлом, и нажмите кнопку Поделиться . По соображениям безопасности, вероятно, лучше выбрать имя пользователя.
  • ЧИТАЙТЕ ТАКЖЕ: исправлено: ошибка видео формата или типа MIME не поддерживается »ошибка видео в Firefox

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

  1. Откройте Этот компьютер . Перейдите на вкладку Компьютер и выберите вариант Подключить сетевой диск .
  2. Выберите нужную букву диска и путь к папке. Обязательно снимите флажок Повторно подключиться при входе в систему и нажмите кнопку Готово .
  3. Когда вы закончите, вы увидите новый доступный диск и можете использовать его для доступа к проблемным файлам.

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

Решение 3 – Используйте Теракопию

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

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

Решение 4. Скопируйте или переместите эти файлы в другую папку

В большинстве случаев вы не сможете открыть файлы из-за этой ошибки, но вы можете переместить их. Просто найдите проблемные файлы и переместите их в другой каталог. Вы даже можете создать новый каталог в корневой папке, например, C: или D: и скопировать туда свои файлы. После этого вы сможете получить доступ к скопированным файлам без каких-либо проблем.

  • ЧИТАЙТЕ ТАКЖЕ. Исправлено. Просмотр настроек рабочего стола неактивен в Windows .

Решение 5. Добавьте эти файлы в архив

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

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

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

Решение 6. Используйте командную строку

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

  1. Нажмите Windows Key + X , чтобы открыть меню Win + X, и выберите Командная строка (Admin) .
  2. Когда откроется командная строка , введите subst X: «C: Path_to_the_problematic_file» и нажмите Enter .
  3. После выполнения команды вы сможете получить доступ к диску X: и всем проблемным файлам.

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

  • ЧИТАЙТЕ ТАКЖЕ: как исправить ошибку “Сервер не найден” в браузере Firefox

Решение 7 – Используйте Total Commander

Если вы не можете получить доступ к своим файлам из-за сообщения об ошибке Имя файла или расширение слишком длинное , вы можете попробовать использовать Total Commander. Это файловый менеджер с двумя панелями, и с его помощью вы сможете легко получить доступ к этим файлам. Total Commander является условно-бесплатным инструментом, но вы можете скачать его бесплатно и попытаться решить эту проблему с помощью него. Если вы не являетесь поклонником этого приложения, вы можете попробовать использовать любой другой файловый менеджер.

Несколько пользователей сообщили, что удалили проблемные файлы с помощью GoodSync Explorer, так что вы также можете попробовать этот инструмент.

Решение 8 – Используйте Long Path Tool

Несколько пользователей сообщили, что вы можете легко решить эту проблему, используя Long Path Tool. Это бесплатное приложение, которое позволит вам переименовывать, копировать или удалять проблемные файлы. Используя этот инструмент, вы сможете переименовывать длинные файлы, удалять их или легко перемещать в другое место. Приложение является бесплатным и полностью переносимым, поэтому вы можете попробовать его.

Кроме того, вы можете попробовать использовать такие инструменты, как Long Path Fixer, Long Path Eraser Free или Ant Renamer. Все эти инструменты бесплатны, и вы можете использовать их для переименования проблемных файлов или папок и получения к ним доступа.

Решение 9. Используйте командную строку для переименования файлов или папок

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

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

  1. Откройте Проводник .
  2. Перейдите на вкладку Вид и выберите Расширения имен файлов и Скрытые элементы . Таким образом вы обнаружите все скрытые файлы и расширения.
  • ЧИТАЙТЕ ТАКЖЕ: «Операционная система не может запустить% 1» [Исправить]

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

  1. Запустите Командную строку от имени администратора. Мы показали вам, как это сделать в Решении 6 , поэтому просмотрите подробные инструкции.
  2. После запуска командной строки введите REN «C: Path_to_the_problematic_fileProblematicFile.txt», «File2.txt» .
    , имейте в виду, что Вам необходимо ввести правильный путь к проблемному файлу, а также расширение файла. В качестве примера мы использовали ProblematicFile.txt , поэтому обязательно замените его на фактическое имя файла, которое приводит к этой ошибке.

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

  1. Откройте Командную строку от имени администратора.
  2. Когда откроется Командная строка , введите REN «C: Path_to_the_problematic_folder» «Имя новой папки». Обязательно выберите папку с самым длинным именем и переименуйте ее, чтобы сделать ее короче.
  3. После переименования папки вы сможете без проблем получить доступ к проблемным файлам.

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

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

Чтобы устранить проблему, просто найдите проблемный файл и загрузите его в Dropbox. После загрузки файла откройте хранилище Dropbox, переименуйте файл и загрузите его снова. Если вы используете автоматическую синхронизацию для Dropbox, файл будет автоматически загружен на ваш компьютер, и вы сможете получить к нему доступ без каких-либо проблем.

  • ЧИТАЙТЕ ТАКЖЕ: невозможно загрузить файлы из Интернета в Windows 10 [Исправить]

Решение 11. Внесение изменений в групповую политику

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

  1. Нажмите Windows Key + R и введите gpedit.msc .
  2. После запуска редактора групповой политики на левой панели выберите Политика локального компьютера> Конфигурация компьютера> Административные шаблоны> Система> Файловая система . Теперь найдите Включить длинные пути NTFS в правой панели и дважды щелкните по нему.
  3. Выберите Включено и нажмите Применить и ОК , чтобы сохранить изменения.
  4. Закройте Редактор групповой политики , перезагрузите компьютер и проверьте, устранена ли проблема.

Если вы не можете получить доступ к редактору групповой политики в своей версии Windows, вы также можете снять это ограничение с помощью редактора реестра. Для этого выполните следующие действия:

  1. Нажмите Windows Key + R и введите regedit . Нажмите Enter или нажмите ОК .
  2. Когда откроется Редактор реестра , на левой панели перейдите к ключу HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlFileSystem . На правой панели найдите и дважды нажмите LongPathsEnabled DWORD. Если этот ключ недоступен, вам необходимо создать его вручную.

    Для этого щелкните правой кнопкой мыши пустое место на правой панели и выберите Создать> Значение DWORD (32-разрядное) . Введите LongPathsEnabled в качестве имени нового DWORD и дважды щелкните его, чтобы открыть его свойства.
  3. Когда откроется окно Свойства , установите для Значения данных значение 1 и нажмите ОК , чтобы сохранить изменения.
  4. Закройте Редактор реестра и перезагрузите компьютер.

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

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

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

Именование файлов, путей и пространств имен - приложения Win32

  • 14 минут на чтение

В этой статье

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

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

Некоторые файловые системы, такие как NTFS, поддерживают связанные файлы и каталоги, которые также соответствуют соглашениям и правилам именования файлов, как и обычный файл или каталог.Дополнительные сведения см. В разделах Жесткие ссылки и переходы, Точки повторной обработки и операции с файлами.

Для получения дополнительной информации см. Следующие подразделы:

Чтобы узнать о настройке Windows 10 для поддержки длинных путей к файлам, см. Ограничение максимальной длины пути.

Имена файлов и каталогов

Все файловые системы следуют одним и тем же общим соглашениям об именах для отдельных файлов: базовое имя файла и дополнительное расширение, разделенные точкой. Однако каждая файловая система, такая как NTFS, CDFS, exFAT, UDFS, FAT и FAT32, может иметь особые и разные правила формирования отдельных компонентов на пути к каталогу или файлу.Обратите внимание, что каталог - это просто файл со специальным атрибутом, обозначающий его как каталог, но в остальном он должен следовать всем тем же правилам именования, что и обычный файл. Поскольку термин каталог просто относится к особому типу файла в том, что касается файловой системы, в некоторых справочных материалах будет использоваться общий термин файл , чтобы охватить как концепции каталогов, так и файлов данных как таковых. По этой причине, если не указано иное, любые правила именования или использования или примеры для файла также должны применяться к каталогу.Термин путь означает один или несколько каталогов, обратную косую черту и, возможно, имя тома. Для получения дополнительной информации см. Раздел «Пути».

Ограничения на количество символов также могут быть разными и могут различаться в зависимости от файловой системы и используемого формата префикса имени пути. Это дополнительно осложняется поддержкой механизмов обратной совместимости. Например, более старая файловая система MS-DOS FAT поддерживает максимум 8 символов для основного имени файла и 3 символа для расширения, всего 12 символов, включая разделитель точек.Обычно это имя файла 8.3 . Файловые системы Windows FAT и NTFS не ограничиваются именами файлов формата 8.3, поскольку они имеют длинных имен файлов, поддерживают , но они по-прежнему поддерживают версию длинных файлов 8.3.

Условные обозначения

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

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

  • Используйте обратную косую черту (\) для разделения компонентов пути . Обратная косая черта отделяет имя файла от пути к нему и одно имя каталога от имени другого каталога в пути. Вы не можете использовать обратную косую черту в имени фактического файла или каталога, потому что это зарезервированный символ, разделяющий имена на компоненты.

  • Используйте обратную косую черту как часть имен томов, например, «C: \» в «C: \ path \ file» или «\\ server \ share» в «\\ server \ share \ path \ file "для имен UNC.Дополнительные сведения об именах UNC см. В разделе «Ограничение максимальной длины пути».

  • Не учитывайте регистр. Например, считайте имена OSCAR, Oscar и oscar одинаковыми, даже если некоторые файловые системы (например, файловая система, совместимая с POSIX) могут рассматривать их как разные. Обратите внимание, что NTFS поддерживает семантику POSIX для чувствительности к регистру, но это не поведение по умолчанию. Для получения дополнительной информации см. CreateFile .

  • Обозначения томов (буквы дисков) также нечувствительны к регистру.Например, «D: \» и «d: \» относятся к одному и тому же тому.

  • Используйте любой символ текущей кодовой страницы для имени, включая символы Юникода и символы из расширенного набора символов (128–255), за исключением следующего:

    • Следующие зарезервированные символы:

      • <(менее)
      • > (больше)
      • : (двоеточие)
      • "(двойная кавычка)
      • / (косая черта)
      • \ (обратная косая черта)
      • | (вертикальный стержень или труба)
      • ? (вопросительный знак)
      • * (звездочка)
    • Целочисленное значение 0, иногда называемое символом ASCII NUL .

    • Символы, целочисленные представления которых находятся в диапазоне от 1 до 31, за исключением альтернативных потоков данных, где эти символы разрешены. Для получения дополнительной информации о файловых потоках см. Файловые потоки.

    • Любой другой символ, запрещенный целевой файловой системой.

  • Используйте точку в качестве каталога , компонент в пути для представления текущего каталога, например «. \ Temp.txt». Для получения дополнительной информации см. Пути.

  • Используйте две последовательные точки (..) в качестве каталога , компонент в пути для представления родителя текущего каталога, например «.. \ temp.txt». Для получения дополнительной информации см. Пути.

  • Не используйте следующие зарезервированные имена для имени файла:

    CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, ​​COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8 и LPT9. Также избегайте этих имен, за которыми сразу следует расширение; например, NUL.txt не рекомендуется. Для получения дополнительной информации см. Пространства имен.

  • Не заканчивайте имя файла или каталога пробелом или точкой. Хотя базовая файловая система может поддерживать такие имена, оболочка Windows и пользовательский интерфейс - нет. Однако допустимо указывать точку в качестве первого символа имени. Например, «.temp».

Краткие и длинные имена

Длинным именем файла считается любое имя файла, которое превышает короткое имя MS-DOS (также называемое 8.3 ) соглашение об именах стилей. Когда вы создаете длинное имя файла, Windows может также создать короткую форму имени 8.3, названную псевдонимом 8.3, или кратким именем, и также сохранить ее на диске. Этот псевдоним 8.3 может быть отключен по соображениям производительности либо для всей системы, либо для определенного тома, в зависимости от конкретной файловой системы.

Windows Server 2008, Windows Vista, Windows Server 2003 и Windows XP: псевдоним 8.3 нельзя отключить для указанных томов до Windows 7 и Windows Server 2008 R2.

Во многих файловых системах имя файла будет содержать тильду (~) внутри каждого компонента имени, которое является слишком длинным для соответствия правилам именования 8.3.

Примечание

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

Чтобы запросить у системы имена файлов 8.3, длинные имена или полный путь к файлу, рассмотрите следующие варианты:

В более новых файловых системах, таких как NTFS, exFAT, UDFS и FAT32, Windows хранит длинные имена файлов на диске в Unicode, что означает, что исходное длинное имя файла всегда сохраняется.Это верно, даже если длинное имя файла содержит расширенные символы, независимо от кодовой страницы, которая активна во время операции чтения или записи на диск.

Файлы с длинными именами файлов можно копировать между разделами файловой системы NTFS и разделами файловой системы Windows FAT без потери информации об имени файла. Это может быть неверно для старых файловых систем MS-DOS FAT и некоторых типов файловых систем CDFS (CD-ROM), в зависимости от фактического имени файла. В этом случае, если возможно, подставляется короткое имя файла.

Пути

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

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

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

Полностью квалифицированные и относительные пути

Для функций Windows API, управляющих файлами, имена файлов часто могут относиться к текущему каталогу, в то время как для некоторых API требуется полный путь. Имя файла указывается относительно текущего каталога, если оно не начинается с одного из следующих символов:

  • Имя UNC любого формата, которое всегда начинается с двух символов обратной косой черты ("\\"). Для получения дополнительной информации см. Следующий раздел.
  • Обозначение диска с обратной косой чертой, например «C: \» или «d: \».
  • Одинарная обратная косая черта, например, «\ каталог» или «\ file.txt». Это также называется абсолютным путем .

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

  • «C: tmp.txt» относится к файлу с именем «tmp.txt» в текущем каталоге на диске C.
  • «C: tempdir \ tmp.txt» относится к файлу в подкаталоге текущего каталога на диске C.

Путь также называется относительным, если он содержит «двойные точки»; то есть два периода вместе в одном компоненте пути. Этот специальный спецификатор используется для обозначения каталога над текущим каталогом, также известного как «родительский каталог».Примеры этого формата:

  • ".. \ tmp.txt" указывает файл с именем tmp.txt, расположенный в родительском каталоге текущего каталога.
  • ".. \ .. \ tmp.txt" указывает файл, который находится на два каталога выше текущего каталога.
  • ".. \ tempdir \ tmp.txt" указывает файл с именем tmp.txt, расположенный в каталоге с именем tempdir, который является одноранговым каталогом для текущего каталога.

Относительные пути могут сочетать оба типа примеров, например «C: .. \ tmp.txt».Это полезно, потому что, хотя система отслеживает текущий диск вместе с текущим каталогом этого диска, она также отслеживает текущие каталоги в каждой из разных букв дисков (если в вашей системе их больше одной), независимо от какое обозначение привода установлено в качестве текущего привода.

Ограничение максимальной длины пути

В выпусках Windows до Windows 10 версии 1607 максимальная длина пути составляет MAX_PATH , что определяется как 260 символов.В более поздних версиях Windows для снятия ограничения требуется изменение раздела реестра или использование инструмента групповой политики. См. Полную информацию в разделе «Ограничение максимальной длины пути».

Пространства имен

Существует две основные категории соглашений о пространствах имен, используемых в API Windows, обычно называемых пространствами имен NT и пространствами имен Win32 . Пространство имен NT было разработано как пространство имен самого нижнего уровня, в котором могли существовать другие подсистемы и пространства имен, включая подсистему Win32 и, как следствие, пространства имен Win32.POSIX - еще один пример подсистемы в Windows, которая построена на основе пространства имен NT. Ранние версии Windows также определяли несколько предопределенных или зарезервированных имен для определенных специальных устройств, таких как коммуникационные (последовательные и параллельные) порты и консоль дисплея по умолчанию как часть того, что теперь называется пространством имен устройств NT, и все еще поддерживаются в текущих версиях. Windows для обратной совместимости.

Пространства имен файлов Win32

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

Для файлового ввода-вывода префикс «\\? \» В строке пути указывает API-интерфейсам Windows отключить весь синтаксический анализ строк и отправить строку, которая следует за ним, прямо в файловую систему.Например, если файловая система поддерживает большие пути и имена файлов, вы можете превысить ограничения MAX_PATH , которые в противном случае применяются API Windows. Дополнительные сведения о обычном ограничении максимального пути см. В предыдущем разделе «Ограничение максимальной длины пути».

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

Многие, но не все API файлового ввода-вывода поддерживают "\\? \"; вы должны посмотреть справочную тему для каждого API, чтобы быть уверенным.

Обратите внимание, что API Unicode следует использовать, чтобы убедиться, что префикс «\\? \» Позволяет вам превышать MAX_PATH

Пространства имен устройств Win32

Префикс «\\. \» Будет обращаться к пространству имен устройства Win32 вместо пространства имен файлов Win32. Таким образом, доступ к физическим дискам и томам осуществляется напрямую, без прохождения через файловую систему, если API поддерживает этот тип доступа.Таким образом можно получить доступ ко многим устройствам, отличным от дисков (например, с помощью функций CreateFile и DefineDosDevice ).

Например, если вы хотите открыть системный последовательный коммуникационный порт 1, вы можете использовать «COM1» в вызове функции CreateFile . Это работает, потому что COM1 – COM9 являются частью зарезервированных имен в пространстве имен NT, хотя использование префикса «\\. \» Также будет работать с этими именами устройств. Для сравнения: если у вас установлена ​​плата расширения последовательного порта на 100 портов и вы хотите открыть COM56, вы не сможете открыть ее с помощью «COM56», потому что для COM56 нет предопределенного пространства имен NT.Вам нужно будет открыть его, используя «\\. \ COM56», потому что «\\. \» Переходит непосредственно в пространство имен устройства, не пытаясь найти предопределенный псевдоним.

Другой пример использования пространства имен устройства Win32 - использование функции CreateFile с «\\. \ PhysicalDisk X » (где X - допустимое целочисленное значение) или «\\. \ CdRom X ». Это позволяет получить доступ к этим устройствам напрямую, минуя файловую систему. Это работает, потому что эти имена устройств создаются системой при перечислении этих устройств, а некоторые драйверы также создают другие псевдонимы в системе.Например, драйвер устройства, реализующий имя «C: \», имеет собственное пространство имен, которое также является файловой системой.

API-интерфейсы

, которые проходят через функцию CreateFile , обычно работают с префиксом «\\. \», Поскольку CreateFile - это функция, используемая для открытия файлов и устройств, в зависимости от используемых вами параметров.

Если вы работаете с функциями Windows API, вы должны использовать префикс «\\. \» Для доступа только к устройствам, а не к файлам.

Большинство API-интерфейсов не поддерживают "\\.\ "; его распознают только те, которые предназначены для работы с пространством имен устройства. Всегда проверяйте справочную тему для каждого API, чтобы быть уверенным.

Пространства имен NT

Существуют также API, которые позволяют использовать соглашение о пространстве имен NT, но диспетчер объектов Windows делает это ненужным в большинстве случаев. Чтобы проиллюстрировать это, полезно просматривать пространства имен Windows в обозревателе системных объектов, используя инструмент Windows Sysinternals WinObj. Когда вы запускаете этот инструмент, вы видите пространство имен NT, начинающееся с корня, или "\".Подпапка под названием «Global ??» это место, где находится пространство имен Win32. Именованные объекты устройств находятся в пространстве имен NT в подкаталоге «Device». Здесь вы также можете найти Serial0 и Serial1, объекты устройства, представляющие первые два COM-порта, если они есть в вашей системе. Объект устройства, представляющий том, будет чем-то вроде HarddiskVolume1, хотя числовой суффикс может отличаться. Имя «DR0» в подкаталоге «Harddisk0» является примером объекта устройства, представляющего диск, и так далее.

Чтобы сделать эти объекты устройств доступными для приложений Windows, драйверы устройств создают символическую ссылку (символическую ссылку) в пространстве имен Win32, «Global ??», на соответствующие объекты устройств. Например, COM0 и COM1 под заголовком "Global ??" подкаталог - это просто символические ссылки на Serial0 и Serial1, «C:» - это символическая ссылка на HarddiskVolume1, «Physicaldrive0» - это символическая ссылка на DR0 и так далее. Без символической ссылки указанное устройство «Xxx» не будет доступно для любого приложения Windows, использующего соглашения о пространстве имен Win32, как описано ранее.Однако дескриптор этого устройства может быть открыт с помощью любых API-интерфейсов, которые поддерживают абсолютный путь пространства имен NT в формате «\ Device \ Xxx».

С добавлением поддержки многопользовательского режима через службы терминалов и виртуальные машины возникла необходимость виртуализировать общесистемное корневое устройство в пространстве имен Win32. Это было достигнуто путем добавления символической ссылки «GLOBALROOT» в пространство имен Win32, которое вы можете увидеть в «Global ??» подкаталог инструмента браузера WinObj, о котором говорилось ранее, и получить доступ к нему можно по пути "\\? \ GLOBALROOT".Этот префикс гарантирует, что следующий за ним путь будет выглядеть как истинный корневой путь диспетчера системных объектов, а не путь, зависящий от сеанса.

Сравнение функций файловой системы

.

Ограничение максимальной длины пути - приложения Win32

  • 3 минуты на чтение

В этой статье

В Windows API (за некоторыми исключениями, обсуждаемыми в следующих параграфах) максимальная длина пути составляет MAX_PATH , что определяется как 260 символов. Локальный путь структурирован в следующем порядке: буква диска, двоеточие, обратная косая черта, компоненты имени, разделенные обратными косыми чертами, и завершающий нулевой символ.Например, максимальный путь на диске D равен «D: \ , некоторая строка пути из 256 символов », где «» представляет невидимый завершающий нулевой символ для текущей системной кодовой страницы. (Символы <> используются здесь для наглядности и не могут быть частью допустимой строки пути.)

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

Примечание

Функции файлового ввода-вывода в Windows API преобразуют «/» в «\» как часть преобразования имени в имя в стиле NT, за исключением случаев использования префикса «\\? \», Как подробно описано в следующих разделах.

Windows API имеет множество функций, которые также имеют версии Unicode, чтобы разрешить путь увеличенной длины для максимальной общей длины пути 32 767 символов. Этот тип пути состоит из компонентов, разделенных обратной косой чертой, каждый до значения, возвращаемого в параметре lpMaximumComponentLength функции GetVolumeInformation (это значение обычно составляет 255 символов). Чтобы указать путь с увеличенной длиной, используйте префикс «\\? \». Например, «\\? \ D: \ очень длинный путь ».

Примечание

Максимальный путь в 32 767 символов является приблизительным, потому что префикс «\\? \» Может быть расширен системой до более длинной строки во время выполнения, и это расширение применяется к общей длине.

Префикс «\\? \» Также может использоваться с путями, построенными в соответствии с универсальным соглашением об именах (UNC). Чтобы указать такой путь с помощью UNC, используйте префикс «\\? \ UNC \». Например, «\\? \ UNC \ server \ share», где «server» - это имя компьютера, а «share» - имя общей папки.Эти префиксы не используются как часть самого пути. Они указывают на то, что путь должен быть передан в систему с минимальными изменениями, что означает, что вы не можете использовать косую черту для обозначения разделителей путей, точки для обозначения текущего каталога или двойных точек для представления родительского каталога. Поскольку вы не можете использовать префикс «\\? \» С относительным путем, относительные пути всегда ограничены общим числом MAX_PATH символов.

Нет необходимости выполнять какую-либо нормализацию Unicode для строк пути и имени файла для использования функциями API ввода-вывода файлов Windows, поскольку файловая система обрабатывает путь и имена файлов как непрозрачную последовательность WCHAR s.Любая нормализация, которая требуется вашему приложению, должна выполняться с учетом этого, вне любых вызовов связанных функций API ввода-вывода файлов Windows.

При использовании API для создания каталога указанный путь не может быть настолько длинным, чтобы нельзя было добавить имя файла 8.3 (то есть имя каталога не может превышать MAX_PATH минус 12).

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

Включить длинные пути в Windows 10 версии 1607 и более поздних версий

Начиная с Windows 10 версии 1607, MAX_PATH были сняты ограничения с общих функций файлов и каталогов Win32. Однако вы должны согласиться на новое поведение.

Для включения нового поведения длинного пути должны быть выполнены оба следующих условия:

  • Раздел реестра Computer \ HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ FileSystem \ LongPathsEnabled (Type: REG_DWORD) должен существовать и иметь значение 1.Значение ключа будет кэшироваться системой (для каждого процесса) после первого вызова затронутой функции файла Win32 или каталога (список функций см. Ниже). Ключ реестра не будет перезагружен в течение всего времени существования процесса. Чтобы все приложения в системе могли распознать значение ключа, может потребоваться перезагрузка, поскольку некоторые процессы могли быть запущены до того, как был установлен ключ.

    Примечание

    Этим ключом реестра также можно управлять с помощью групповой политики по адресу Конфигурация компьютера> Административные шаблоны> Система> Файловая система> Включить длинные пути Win32 .

  • Манифест приложения также должен включать элемент longPathAware .

         true     

Это функции управления каталогами, которые больше не имеют ограничений MAX_PATH , если вы выбираете поведение длинного пути: CreateDirectoryW, CreateDirectoryExW GetCurrentDirectoryW RemoveDirectoryW SetCurrentDirectoryW.

Это функции управления файлами, которые больше не имеют ограничений MAX_PATH , если вы выбираете поведение длинного пути: CopyFileW, CopyFile2, CopyFileExW, CreateFileW, CreateFile2, CreateHardLinkW, CreateSymbolicLinkW, DeleteFileW, FindFirstFileW, GetFirstFileExiles, FindNettributes , SetFileAttributesW, GetFullPathNameW, GetLongPathNameW, MoveFileW, MoveFileExW, MoveFileWithProgressW, ReplaceFileW, SearchPathW, FindFirstFileNameW, FindNextFileNameW, FindFirstStreamW, GetNextressFileNameW, GetFirstStreamW, GetNextressFileNameW, GetLongPathNameW, FindNextressFileName, GetFirstStreamW, GetNextressFileNameW, GetFirstStreamW, GetNextressFileName, GetLongPathName

.

не может удалить файлы с длинными именами? Почини за 5 секунд

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

"Пожалуйста, помогите. Я не могу удалить файл из-за слишком длинного имени файла."

delete-long-files-featured

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

Что такое длинные имена файлов?

Длинные имена файлов унаследованы от Windows 95 и ее архитектуры MS-DOS.В системе LFN указаны имена файлов и каталогов длиной до 255 символов. Это было изменением по сравнению со старым соглашением об именах файлов 8.3, которое содержало не более восьми символов (после любого пути к каталогу), за которым, необязательно, следовало расширение имени файла, состоящее из точки [.] И не более трех дополнительных символов.

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

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

Long File Name

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

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

Устранение ошибок "слишком длинного" имени файла

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

  1. Откройте командную строку в каталоге, в котором находится файл.
  2. Используйте команду DOS, чтобы получить короткое имя файла в формате имени файла 8.3.
  3. Теперь используйте команду DEL в DOS для файла, чтобы удалить файл.

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

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

Open Command Prompt

Введите команду DOS для вывода списка файлов и папок в текущем каталоге.Команда dir является внутренней командой и доступна во всех операционных системах Microsoft. Атрибут / X отображает короткие имена для файлов, отличных от 8.3. Вы также можете использовать DIR / X / P для приостановки и перехода от одного экрана к другому, когда файлов слишком много для изучения.

На скриншоте ниже показан текстовый файл, который мы хотим удалить, с «измененным» коротким именем.

Итак, вы можете видеть, как мы использовали DOS для «автоматического создания» более короткого имени файла.Теперь просто используйте простую команду DEL для короткого имени файла, чтобы удалить файл. Это оно!

Урок здесь - не пренебрегать DOS.Есть множество полезных команд DOS, которые могут спасти вам день. Пока вы запоминаете их, вы также захотите узнать, как исправить еще одну распространенную проблему Windows: файлы, которые заблокированы для редактирования и удаления.

dosprompt 8 полезных команд DOS, которые следует запомнить

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

Изображение предоставлено: hanss через Shutterstock.com

Twitter on white phone Твиттер избавляется от цепочек ответов

Платформа также закрывает свой прототип приложения twttr.

Об авторе Сайкат Басу (Опубликовано 1538 статей)

Сайкат Басу - заместитель редактора по Интернету, Windows и производительности.После того, как он избавился от грязи MBA и десятилетней маркетинговой карьеры, он теперь увлечен тем, что помогает другим улучшить свои навыки рассказывания историй. Он ищет пропавшую оксфордскую запятую и ненавидит плохие скриншоты. Но идеи фотографии, фотошопа и производительности успокаивают его душу.

Ещё от Saikat Basu
Подпишитесь на нашу рассылку новостей

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

Еще один шаг…!

Подтвердите свой адрес электронной почты в только что отправленном вам электронном письме.

.

Мы не можем найти эту страницу

(* {{l10n_strings.REQUIRED_FIELD}})

{{l10n_strings.CREATE_NEW_COLLECTION}} *

{{l10n_strings.ADD_COLLECTION_DESCRIPTION}}

{{l10n_strings.COLLECTION_DESCRIPTION}} {{addToCollection.description.length}} / 500 {{l10n_strings.TAGS}} {{$ item}} {{l10n_strings.PRODUCTS}} {{l10n_strings.DRAG_TEXT}}

{{l10n_strings.DRAG_TEXT_HELP}}

{{l10n_strings.LANGUAGE}} {{$ select.selected.display}}

{{article.content_lang.display}}

{{l10n_strings.AUTHOR}}

{{l10n_strings.AUTHOR_TOOLTIP_TEXT}}

{{$ select.selected.display}} {{l10n_strings.CREATE_AND_ADD_TO_COLLECTION_MODAL_BUTTON}} {{l10n_strings.CREATE_A_COLLECTION_ERROR}} .

python - ограничение записи в файл по длине строки

Переполнение стека
  1. Около
  2. Товары
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
.

Мы не можем найти эту страницу

(* {{l10n_strings.REQUIRED_FIELD}})

{{l10n_strings.CREATE_NEW_COLLECTION}} *

{{l10n_strings.ADD_COLLECTION_DESCRIPTION}}

{{l10n_strings.COLLECTION_DESCRIPTION}} {{addToCollection.description.length}} / 500 {{l10n_strings.TAGS}} {{$ item}} {{l10n_strings.PRODUCTS}} {{l10n_strings.DRAG_TEXT}}

{{l10n_strings.DRAG_TEXT_HELP}}

{{l10n_strings.LANGUAGE}} {{$ select.selected.display}}

{{article.content_lang.display}}

{{l10n_strings.AUTHOR}}

{{l10n_strings.AUTHOR_TOOLTIP_TEXT}}

{{$ select.selected.display}} {{l10n_strings.CREATE_AND_ADD_TO_COLLECTION_MODAL_BUTTON}} {{l10n_strings.CREATE_A_COLLECTION_ERROR}} .

Смотрите также