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

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

3gp       avi       fb2       jpg       mp3       pdf      

Как включить поддержку длинных имен файлов и папок


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

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

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

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

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

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

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

Слишком длинный целевой путь, решаем за минуту

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

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

Раньше имена файлов в Windows ограничивались форматом 8.3 - всего восемь символов для имени файла и три для расширения. С появлением Windows 95 Microsoft сняла этот предел и позволила использовать гораздо более длинные имена.

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

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

\\?\C:\директория\поддиректория\имя файла

Хочу отметить, что на период ноября 2020 года и последней версий Windows 10 1909, в ПРОВОДНИКЕ Windows до сих пор есть ограничения в 260 символов , и мы все слышим обещания, что их исправят

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

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

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

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

Не удается завершить извлечение. Слишком длинный конечный путь. Переименуйте сжатую ZIP-папку и повторите попытку

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

  • Через групповую или локальную политику Windows (Применимо только к Windows 10 и Windows Server 2016 и выше)
  • Через реестр Windows (Применимо только к Windows 10 и Windows Server 2016 и выше)
  • Через сторонние утилиты 7-Zip, Far, TotalCommander (Применимо ко всем версиям Windows)
  • Использование силинков (символических ссылок) (Применимо ко всем версиям Windows)
  • Через сетевой диск, для укорачивания пути
  • Утилиты xcopy, robocopy

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

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

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

<application xmlns="urn:schemas-microsoft-com:asm.v3">
<windowsSettings>
<longPathAware xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">true</longPathAware>
</windowsSettings>
</application>

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

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

Еще раз напоминаю, что данный метод подойдет и для серверных версий, даже самых современных Windows Server 2019

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

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

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

Конфигурация компьютера - Административные шаблоны - Система - Файловая система (Computer configuration - Administrative templates - System - Filesystem)

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

То же самое вы можете сделать централизовано для массового управления через групповые политики, все ветки те же самые.

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

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

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

HKLM\System\CurrentControlSet\Control\FileSystem

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

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

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

HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\ CurrentVersion\Group Policy Objects\ {48981759-12F2-42A6-A048-028B3973495F} Machine\System\CurrentControlSet\Policies

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

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

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

Set-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem -Name LongPathsEnabled -Value 1

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

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

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

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

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

Потребуется перезагрузка.

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

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

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

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

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

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

 

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

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

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

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

  • Путь где будет лежать файл символической ссылки - в моем примере C:\короткий путь
  • Длинный путь - C:\Share\WINDOW~1\C73D~1\C6BF~1 \D915~1\5C04~1\B4E5~1\260MIC~1

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

mklink /D "C:\короткий путь" "C:\Share\WINDOW~1\ C73D~1\C6BF~1\D915~1\5C04~1\B4E5~1\260MIC~1"

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

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

 

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

subst - простая команда позволяющая связать нужный путь к каталогу с буквой диска. Так же откройте командную строку в режиме администратора и сопоставьте ваш длинный путь с буквой W.

subst W: "C:\Share\WINDOW~1\C73D~1\C6BF~1\ D915~1\5C04~1\B4E5~1\260MIC~1"

У вас в проводнике Windows должен появиться диск с данной буквой, если его нет, то прочитайте статью "Не появляется диск после команды subst" или просто в проводнике вбейте W:\ и нажмите Enter.

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

В командной строке используйте команду net use, далее буква диска, которую мы присваиваем и в самом конце путь:

net use Z: "\\DESKTOP-OJ0SCOE\Share\WINDOW~1\ C73D~1\C6BF~1\D915~1\5C04~1\B4E5~1\260MIC~1" /persistent:yes

Как видим все прекрасно отработало и диск появился.

Использование утилит Far или Total Commander

После включения параметра "Включить длинные пути Win32" данные утилиты в 100% случаев помог вам произвести любые действия с папками или файлами на любом длинном пути в системе Windows. Откройте Total Commander и создайте для примера папку в каталоге с длинным путем, напоминаю для этого нужно нажать F7.

Как видите все прекрасно создается, удаляется или копируется при желании.

Как еще обойти проблему с длинными путями Windows

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

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

Как в Windows 10 включить поддержку пути к файлам длиной более 260 символов

Благодаря Anniversary Update для Windows 10 вы можете, наконец, отказаться от ограничения максимального пути в 260 символов в Windows. Вам просто нужно внести небольшие изменения в реестр Windows или групповую политику. Далее рассказано, как это сделать.

До Windows 95, операционная система Windows допускала только имена файлов длиной восемь символов с расширением файла из трёх символов, обычно называемое именем файла 8.3. Windows 95 отказалась от этого, чтобы разрешить длинные имена файлов, но по-прежнему ограничивала максимальную длину пути (которая включает полный путь к папке и имя файла) не более 260 символами. Этот предел был установлен тогда и действует до сих пор. Если вы когда-либо сталкивались с этим ограничением, скорее всего, это было, когда вы пытались скопировать папки с глубоким вложением в другие папки, например, при копировании содержимого жёсткого диска в папку на другом диске. В Windows 10 Anniversary Update наконец добавлена возможность отказаться от этой максимальной длины пути.

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

Windows Home: как снять ограничение в 260 символов на путь имени файла

Если у вас версия Windows Home, вам придётся отредактировать реестр Windows, чтобы внести эти изменения. Вы также можете сделать это таким образом, если у вас Windows Pro или Enterprise, но вы чувствуете себя более комфортно, работая в реестре, чем редактор групповой политики. (Однако, если у вас есть Pro или Enterprise, мы рекомендуем использовать более простой редактор групповой политики, как описано в следующем разделе.)

Стандартное предупреждение: редактор реестра является мощным инструментом, и неправильное его использование может сделать вашу систему нестабильной или даже неработоспособной. Это довольно простая настройка, и пока вы придерживаетесь инструкции, у вас не должно быть никаких проблем. Тем не менее если вы никогда не работали с реестром ОС раньше, изучите более подробно о том, как использовать редактор реестра, прежде чем приступить к работе. И обязательно сделайте резервную копию реестра (и вашего компьютера!) перед внесением изменений.

Чтобы начать, откройте редактор реестра, нажав «Пуск» и напечатав «regedit». Нажмите Enter, чтобы открыть редактор реестра и дать ему разрешение вносить изменения в свой компьютер.

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


 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem

Справа найдите значение с именем LongPathsEnabled и дважды щёлкните его. Если вы не видите значения в списке, вам нужно создать его, щёлкнув правой кнопкой мыши по ключу FileSystem, выбрав New > DWORD (32-bit) Value, а затем присвоив имя новому значению LongPathsEnabled.

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

Теперь вы можете закрыть редактор реестра и перезагрузить компьютер (или выйти из своей учётной записи и войти снова). Если вы хотите отменить изменения, просто вернитесь к значению LongPathsEnabled и установите его значение от 1 до 0.

Включите поддержку длинных имён файлов одним кликом

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

Long Path Names Hacks

Эти хаки на самом деле являются просто ключом FileSystem, урезанным до значения LongPathsEnabled, которое мы описали выше, а затем экспортированным в файл .REG. Запуск хака «Remove 260 Character Path Limit.reg» устанавливает значение LongPathsEnabled равным 1. Запуск хака «Restore 260 Character Path Limit (Default).reg» устанавливает значение обратно в 0.

Windows Pro или Enterprise: как снять ограничение в 260 символов на путь имени файла с помощью редактора локальной групповой политики

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

В Windows 10 Pro или Enterprise нажмите «Пуск», введите gpedit.msc и нажмите Enter.

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

В открывшемся окне свойств выберите параметр «Включено» и нажмите «ОК».

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

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

Связанные статьи:

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

Что значит "Файловая система не поддерживает такие длинные имена исходных файлов" при удалении файла и как это исправить?

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

Что это значит?

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

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

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

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

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

Также существует и второй вариант решения данной проблемы. Программа Unlocker. Она удаляет все и вся в пару кликов мышкой без перемещения в корзину.

Окно программы Unlocker – выбор файла или папки для удаления


Лучший способ отблагодарить автора статьи- сделать репост к себе на страничку

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

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

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

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

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

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

[Решено] Имена файлов слишком длинны для помещения в эту целевую папку

Вчера столкнулся с ситуаций когда копировал жесткий диск глав буха на его новый комп и у меня вылетела ошибка при копировании «имена файлов слишком длинны для помещения в эту целевую папку»



дело в том что папки и вложенные в них папки превысили 260 символов и у вас не получится их не скопировать не удалить.

Как из вариантов можно просто переименовать эти папки в более короткий путь либо воспользоваться программой Total Commander и при копировании через нее проделать небольшую операцию

  1. Выделите папку в  Total Commander  которую надо скопировать
  2. нажмите меню Файл -> Изменить Атрибуты
  3. и приведите настройки к такому виду:

    т.е. снимаем галочку со всех атрибутов «Архивный», «Только для чтения», «Системный», «Скрытый» и ставим галочку «Обрабатывать содержимое каталогов» 
  4. все !вот такая простая заметочка которая сэкономит вам нервы и время :0)

 

( 8 оценок, среднее 4 из 5 )

Понравилась статья? Поделиться с друзьями:

Именование файлов, путей и пространств имен - приложения 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: \» относятся к одному и тому же тому.

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

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

      • <(менее)
      • > (больше)
      • : (двоеточие)
      • "(двойная кавычка)
      • / (косая черта)
      • \ (обратная косая черта)
      • | (вертикальный стержень или труба)
      • ? (вопросительный знак)
      • * (звездочка)
    • Целочисленное значение ноль, иногда называемое символом 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".Этот префикс гарантирует, что следующий за ним путь будет выглядеть как истинный корневой путь диспетчера системных объектов, а не путь, зависящий от сеанса.

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

.

linux - Как изменить разрешения для папки и ее подпапок / файлов за один шаг?

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

Неверные имена файлов и типы файлов в OneDrive и SharePoint

Требовать выезда

  1. Перейдите к библиотеке документов, которую вы хотите настроить.

  2. На панели инструментов на вкладке Библиотека в группе Параметры выберите Параметры библиотеки .

  3. В Общие настройки выберите Настройки управления версиями .

  4. В Требовать извлечения выберите (по умолчанию).

Безопасность черновика

  1. Перейдите к библиотеке документов, которую вы хотите настроить.

  2. На панели инструментов на вкладке Библиотека в группе Параметры выберите Параметры библиотеки .

  3. В Общие настройки выберите Настройки управления версиями .

  4. В Draft Item Security выберите Любой пользователь, который может читать элементы (по умолчанию).

Подтверждение содержания

  1. Перейдите к библиотеке документов, которую вы хотите настроить.

  2. На панели инструментов на вкладке Библиотека в группе Параметры выберите Параметры библиотеки .

  3. В Общие настройки выберите Настройки управления версиями .

  4. В Content Approval выберите (по умолчанию) для Требовать утверждения содержимого для представленных элементов .

Обязательный столбец

  1. Перейдите к библиотеке документов, которую вы хотите настроить.

  2. На панели инструментов на вкладке Библиотека в группе Параметры выберите Параметры библиотеки .

  3. В разделе Столбцы страницы убедитесь, что в разделе Требуется нет столбцов.

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

Исключить из автономного клиента - уровень библиотеки

  1. Перейдите к библиотеке документов, которую вы хотите настроить.

  2. На панели инструментов на вкладке Библиотека в группе Параметры выберите Параметры библиотеки .

  3. В Общие настройки выберите Расширенные настройки .

  4. В Offline Client Availability выберите Yes (по умолчанию).

Исключить из автономного клиента - уровень семейства сайтов

  1. Перейдите к семейству сайтов, которое вы хотите настроить.

  2. На панели инструментов на вкладке Сайт в группе Параметры выберите Параметры сайта .

  3. В разделе «Поиск» выберите Поиск и автономная доступность .

  4. В Offline Client Availability выберите Yes (по умолчанию).

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

  1. Перейдите к настройкам сайта, которые вы хотите настроить.

  2. В настройках выберите Функции семейства сайтов под заголовком Администрирование семейства сайтов.

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

Разрешения

  1. Перейдите к библиотеке документов, которую вы хотите настроить.

  2. На панели инструментов на вкладке Библиотека в группе Параметры выберите Параметры библиотеки .

  3. Найдите разрешений для этой библиотеки документов , а затем Проверьте разрешения для пользователя

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

Проверка

  1. Перейдите к библиотеке документов, которую вы хотите настроить.

  2. На панели инструментов на вкладке Библиотека в группе Параметры выберите Параметры библиотеки .

  3. В разделе Общие настройки выберите Настройки проверки

  4. Удалите все проверки столбцов и выберите Сохранить .

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

.

Как исправить возврат папки в режим только для чтения в Windows 10

Если ваша папка продолжает возвращаться в режим только для чтения, это может быть связано с недавним обновлением Windows 10. Многие пользователи сообщают, что при обновлении своей системы до Windows 10 они столкнулись с этой ошибкой. Только для чтения - это атрибут файла / папки, который позволяет только определенной группе пользователей читать или редактировать файлы или папку. Это может привести в ярость, однако исправление довольно простое и легкое, но может отличаться в зависимости от сценария, который его вызвал.

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

Папка возвращается в режим только для чтения Windows 10

Что заставляет папку возвращаться в режим только для чтения в Windows 10?

Это может происходить с вами по разным причинам, тем не менее, самые общие из них -

  • Обновление Windows .Если вы недавно обновили свою систему до Windows 10, это могло произойти из-за того, что разрешения вашего аккаунта могли быть изменены.
  • Разрешения учетной записи . Иногда ошибка может быть связана с разрешениями вашей учетной записи, что является наиболее частой причиной, о которой вы не подозреваете.

Возможные и эффективные решения этой проблемы: -

Решение 1. Отключение контролируемого доступа

Перед тем, как мы попробуем другие технические решения, мы сначала попытаемся отключить Controlled Folder Access в ваших настройках.Это

.

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