длина имени файла в windows не может превышать

Существует ли предел длины имени файлов в Windows

Во всех операционных системах и для всех файловых систем существуют определённые лимиты на:

Операционная система Windows не является исключением, в ней длина имени файла или папки ограничена 255 символами, а вся длина пути ограничена примерно 32,000 символами.

Имеется ряд исключений, когда разрешённая длина файла должна быть меньше этих значений:

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

При поиске по файлам средствами ОС, эти файлы также недоступны для индексации и поиска по ним.

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

Подтвердить проблему слишком длинного имени на сетевом носителе можно командой вида:

вызывает следующую ошибку из-за того, что в папке имеется файл со слишком длинным именем:

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

В остальных случаях, попробуйте следующие советы:

1. (если слишком длинный путь до файла) Вначале скопируйте папку на более высокие уровни в windows эксплорере и затем переместите их на ваш локальный компьютер

2. (если имена файлов слишком длинные) Вначале попробуйте поместить их в архив программами zip/rar/7z и затем скопируйте файл архива на свой локальный компьютер и извлеките его содержимое

3. Попробуйте встроенную программу ROBOCOPY:

4. Попробуйте перед путём добавить \\?\

5. Используйте сторонне программное обеспечение (о нём далее)

FastCopy — это проект с открытым исходным кодом на C, написанный SHIROUZU Hiroaki и это «Самое быстрое программное обеспечение для копирования/удаления файлов на Windows.» Программа поддеррживает UNICODE и более чем MAX_PATH (260 символов) в путях имён файлов.

Если имеются сотни путей, которые слишком долго исправлять, то используйте инструмент «Path Tool Long Auto Fixer».

Источник

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

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

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

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

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

Тем не менее, есть еще одна тонкость, связанная с тем, как Windows кодирует символы. Ни один индивидуальный объект (файл или каталог) не может иметь имя длиннее 255 символов. При этом, имя включает в себя пробелы и обратную косую черту, которая используется в качестве разделителей. Этот предел в 255 символов часто цитируется, как предел для названия отдельного файла, но, на практике, это относится только к именам файлов в корневом каталоге без каких-либо каталогов.

Существует и еще одно ограничение на длину имени файла, которое часто упускается из виду. Обычно, по умолчанию Windows поддерживает альтернативное имя файла, используя старую систему именования 8.3. Когда вы создаете папку, Windows будет резервировать 12 символов для альтернативного имени файла, оставляя 244 символов для всех содержащихся внутри объектов. Использование системы именования 8.3 можно отключить, но это может вызвать проблемы, при использовании старых 16-битных программ.

Примечание: Система именования 8.3 довольно проста. 8 — это количество символов наименования. «.» — это разделитель между названием и расширением. 3 — это количество символов для расширения. 12 — это 8 + 1 + 3.

Примечание: Подробнее о том, как отключить поддержку 8.3, смотрите информацию по адресу https://technet.microsoft.com/ru-ru/library/cc778996.aspx. Учтите, что вам потребуется редактировать реестр.

Существует так же механизм, который позволяет использовать более длинные имена файлов. Например, сетевым системам, порой, требуется больше гибкости в именах файлах. Поэтому, Windows API включает в себя специальную систему обращения для поддержки очень длинных Unicode имен в блоках по 255 символов. Эти длинные имена начинаются с префикса «\\?\» (без кавычек). Так что, если вы столкнулись с проблемой в имени файла, у которого длина слишком большая, то попробуйте использовать этот префикс в имени пути, например, «\\?\c:\file.txt» (без кавычек).

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

Источник

Мир цифровой информации

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

Читайте также:  версия операционной системы несовместима со средством восстановления запуска виндовс 10

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

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

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

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

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

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

Источник

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

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

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

keyboard 469548 640.jpg.optimal

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

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

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

despaired 2261021 640.jpg.optimal

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

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

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

Легкое Исправление

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

C: User guymc Documents Мои резюме резюме с именами на долгие годы, когда возникают проблемы, и они становятся частью нашего творчества.

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

Менее простые исправления

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

Следующие решения помогут вам. Их не сложно сделать.

Перемещение, удаление или копирование файлов или каталогов с помощью PowerShell

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

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

Возможно, путь к файлу выглядит примерно так:

C: Users guymc Documents Это Is Точно Параметр Precise Directory Путь Это I Потребность К Have К Keep My Files Рассортировано В А Маннер Это ДАЕТ Sense К Me Так Lets Притворись В этом Is An Actual Filepath что вы Might Также Have на Ваш Windows компьютер А не Over Think It Document.docx

Этот путь к файлу составляет 280 символов. Поэтому мы не можем скопировать каталог оттуда куда-либо еще с помощью обычного метода копирования-вставки. Мы получаем ошибку Destination Path Too Long.

file explorer destination path too long error

Давайте предположим, что по какой-то причине мы не можем переименовать каталоги, в которые вложен файл. Что мы делаем?

Откройте PowerShell. Если вы еще не использовали PowerShell, прочитайте нашу статью «Использование PowerShell для домашних пользователей — Руководство для начинающих». Вы можете сделать следующие шаги, не читая статью, хотя.

Когда откроется PowerShell, вы окажетесь в корне своего пользовательского каталога. Продолжайте, предполагая, что C: Users guymc — ваш пользовательский каталог.

Каталог с именем This находится внутри каталога Documents. Чтобы перейти в каталог Documents, мы используем команду DOS cd Documents.

powershell cd documents

Вы увидите быстрое изменение C: Users guymc Documents. Это хорошо. Мы работаем ближе к каталогам, которые облегчат жизнь.

Копирование каталога с использованием Copy-Item

powershell copy item

Переместить каталог с помощью Move-Item

Допустим, мы хотим переместить каталог This, а также все каталоги и файлы в нем в ThatNewFolder. Перемещение не оставляет оригинал на месте.

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

Читайте также:  программа для настройки локальной сети windows 10

powershell move item

Чтобы убедиться, что это работает, используйте команду cd ThatNewFolder, чтобы войти в ThatNewFolder. Затем используйте команду dir для вывода списка каталогов в ThatNewFolder. Вы увидите, что этот каталог находится там.

powershell this in thatnewfolder

Удалить каталог с помощью Remove-Item

Если мы хотим удалить этот каталог и все в нем, мы используем командлет Remove-Item.

Имейте в виду! Восстановить что-либо удаленное таким образом было бы чрезвычайно сложно. Вы можете попробовать методы в Как восстановить случайно удаленные файлы, но не ожидайте многого.

powershell remove item

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

Заставьте Windows 10 принимать длинные пути к файлам

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

Есть два способа сделать это. Один предназначен для пользователей Windows 10 Home, а другой — для пользователей Windows 10 Pro или Enterprise. Эти методы могут работать для Windows 8.1 или более ранней версии, но мы не можем гарантировать это.

Заставьте Windows 10 Home принимать длинные пути к файлам

Чтобы Windows 10 Home принимала длинные пути к файлам, нам нужно открыть редактор реестра. Если вы раньше не работали в редакторе реестра, будьте осторожны. Случайное удаление или изменение здесь может помешать работе Windows полностью.

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

После открытия редактора реестра и создания резервной копии перейдите в папку HKEY_LOCAL_MACHINE SYSTEM CurrentControlSet Control FileSystem и найдите ключ LongPathsEnabled.

regedit long path enabled

Дважды щелкните LongPathsEnabled. Убедитесь, что в поле Значение данные: номер 1 указан. Нажмите OK, чтобы подтвердить изменения.

regedit long path enabled change value

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

Заставьте Windows 10 Pro или Enterprise принимать длинные пути к файлам

Чтобы позволить Windows 10 Pro или Enterprise использовать длинные пути к файлам, мы собираемся использовать редактор групповой политики. Это инструмент, который позволяет нам устанавливать политики в отношении работы Windows на компьютере и на уровне пользователей.

У нас есть несколько статей об использовании групповой политики для таких вещей, как отключение или включение параметров Internet Explorer или добавление сообщения на экран входа в систему.

Откройте редактор групповой политики, перейдя в меню «Пуск» и введя gpedit. Лучший результат должен быть Изменить групповую политику. Дважды щелкните по этому.

open group policy editor

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

group policy enable long filenames

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

group policy enable Win32 long paths enabled

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

Это оно

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

Источник

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

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

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

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

Дополнительные сведения см. в следующих подразделах:

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

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

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

Соглашения об именах

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

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

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

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

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

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

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

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

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

Используйте точку в качестве компонента каталога в пути для представления текущего каталога, например. \temp.txt «. Дополнительные сведения см. в разделе paths.

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

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

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 10

Не завершайте имя файла или каталога с пробелом или точкой. хотя базовая файловая система может поддерживать такие имена, оболочка 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, udf и FAT32, Windows сохраняет длинные имена файлов на диске в юникоде, что означает, что исходное имя длинного файла всегда сохраняется. Это справедливо даже в том случае, если длинное имя файла содержит символы национальных алфавитов, независимо от того, какая кодовая страница активна во время операции чтения или записи с диска.

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

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

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

Полные и относительные пути

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

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

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

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

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

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

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

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

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

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

Обратите внимание, что для префикса «?» можно использовать только API-интерфейсы Юникод, что \ \ \ позволяет превысить максимальный _ путь

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

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

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

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

Источник

Поделиться с друзьями
Adblock
detector