Гид по технологиям

Включение чувствительности к регистру для папок в Windows 10

• 7 min read • Windows • Обновлено 10 Dec 2025
Чувствительность к регистру в папках Windows 10
Чувствительность к регистру в папках Windows 10

Кратко

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

Скриншот: иконка файла и папки в Windows с выделением параметров

Быстрые ссылки

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

Как это работает

Чувствительность к регистру реализована как функция NTFS и включается на уровне отдельного каталога. Это означает, что вы можете включить её только для тех папок, где это нужно — например, для исходников проекта, в которых имена файлов различаются только регистром (“file” vs “File”).

Функция появилась в обновлении Windows 10 April 2018 Update. До этого в WSL (Windows Subsystem for Linux) можно было смонтировать папки как чувствительные внутри Linux-среды, но обычные Windows-приложения этого не видели. С файловой реализацией на уровне NTFS все приложения Windows корректно распознают флаг каталога.

Включение и проверка флага выполняется утилитой fsutil.exe из командной строки (Command Prompt) или из PowerShell. Папки, созданные внутри WSL/Linux-среды, по умолчанию получают нужный флаг, если включена соответствующая опция драйвера DrvFs.

Важно: это настройка каталога на уровне файловой системы — она не меняет поведение приложений в целом, а только определяет, как Windows сравнивает имена файлов в конкретной папке.

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

  1. Откройте PowerShell или Командную строку от имени администратора. Нажмите правой кнопкой по Пуску и выберите “Windows PowerShell (Администратор)” или найдите “Командная строка”, затем выберите “Запуск от имени администратора”.

  2. Перейдите к тому, что вы собираетесь менять: если это папка в каталоге пользователя, возможно, права администратора не требуются, но если это системная папка или корень диска (например, C:\project), понадобятся соответствующие разрешения на запись атрибутов.

  3. Убедитесь, что никакая запущенная Linux-программа (WSL) и никакое приложение не держит открытую целевую папку; изменение флага во время доступа из WSL может привести к непредсказуемому поведению. Закройте терминалы WSL/Bash и остановите процессы, которые могут использовать папку.

  4. Выполните команду, заменив путь на ваш:

fsutil.exe file setCaseSensitiveInfo C:\folder enable

Если путь содержит пробелы, возьмите его в кавычки так:

fsutil.exe file setCaseSensitiveInfo "C:\my folder" enable

Скриншот: выполнение команды fsutil в PowerShell

Если команда прошла успешно, папка начнёт различать имена по регистру: Windows и приложения увидят “file” и “File” как два отдельных объекта.

Права и разрешения

Технически требуется разрешение “write attributes” для каталога. Для папок в профиле пользователя обычно достаточно прав вашего учётного записа; для папок вне профиля (корни, общие каталоги) чаще нужны права администратора.

Это не влияет на вложенные папки

Флаг чувствительности применяется только к той папке, где вы его установили. Он не наследуется на подкаталоги автоматически. Если у вас есть C:\folder с подпапками C:\folder\test и C:\folder\stuff, то включение флага для C:\folder не сделает автоматически чувствительными test и stuff — для каждой подпапки нужно повторно выполнить команду fsutil.

Схема: родительская папка и подкаталоги, где флаг применяется выборочно

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

Linux-инструменты создают чувствительные папки по умолчанию

Инструменты, работающие в среде WSL, создают каталоги с установленным флагом чувствительности автоматически. Это реализовано через драйвер DrvFs, который по умолчанию использует опцию case=dir: она заставляет Linux-среду учитывать NTFS-флаг каталога и устанавливать его для новых каталогов, созданных из WSL.

Если вы хотите изменить это поведение, отредактируйте файл /etc/wsl.conf внутри дистрибутива и добавьте или измените секцию automount, например:

[automount]
options = "metadata,case=dir"

После изменения перезапустите WSL (wsl –shutdown) и повторно откройте дистрибутив.

Примечание: опция case=dir — это настройка DrvFs. Если вы уберёте её, WSL может перестать автоматически помечать каталоги как чувствительные, и тогда новые каталоги будут создаваться без флага.

Скриншот: терминал WSL, создание директории командой mkdir

Как проверить, включена ли чувствительность для папки

Чтобы узнать текущий статус каталога, выполните:

fsutil.exe file queryCaseSensitiveInfo C:\folder

Если включено, вы увидите: “Case sensitive attribute on directory [путь] is enabled.” Если отключено: “Case sensitive attribute on directory [путь] is disabled.” Эти строки генерируются самим fsutil.

Скриншот: вывод команды fsutil с информацией о флаге чувствительности

Как вернуть папку к регистронезависимости

Чтобы отключить флаг и вернуть стандартное поведение Windows (регистр игнорируется при сравнении имён), выполните:

fsutil.exe file setCaseSensitiveInfo C:\folder disable

Скриншот: сообщение об успешном отключении флага чувствительности

Если при попытке отключить флаг система обнаружит файлы с конфликтующими именами (например, существуют одновременно “file” и “File”), вы получите ошибку “Error: The directory is not empty”. В этом случае удалите или переименуйте конфликтующие объекты, прежде чем повторять команду.

Скриншот: ошибка при отключении флага из-за конфликтующих файлов

Когда стоит и когда не стоит включать чувствительность к регистру

  • Стоит включать, если:

    • вы разрабатываете ПО, которое таргетирует Linux/Unix и ожидает регистрозависимого поведения;
    • вы используете инструменты сборки или среды, где имена файлов различаются регистром;
    • хотите избежать неожиданных ошибок при переносе проекта между Linux и Windows.
  • Не стоит включать, если:

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

Пошаговый план внедрения для проекта (мини-методология)

  1. Проанализируйте дерево проекта на предмет существующих коллизий (скрипт проверяет файлы с одинаковыми именами, отличающимися только регистром).
  2. Сделайте резервную копию критичных данных.
  3. На тестовой машине включите флаг в целевой папке и прогоните сборку/тесты.
  4. Зафиксируйте все изменения в CI: добавьте шаги, которые проверяют, что артефакты создаются ожидаемо.
  5. При успешных тестах примените изменения на продовом окружении поэтапно.

Критерии приёмки

  • Файловая система в целевой папке корректно различает имена по регистру (проверка через fsutil).
  • Сборка/тесты проекта проходят без ошибок, связанных с именами файлов.
  • Отсутствуют скрытые конфликты имён: автоматизированный скрипт фиксации коллизий возвращает 0 проблем.

Чеклист ролей

  • Разработчик:

    • проверить и удалить/переименовать конфликтующие файлы;
    • прогнать локальные тесты в WSL и в Windows;
    • зафиксировать изменения конфигурации в документации проекта.
  • Системный администратор:

    • убедиться в наличии бэкапов;
    • предоставить учетные данные/права для выполнения fsutil;
    • при массовом применении — подготовить скрипт и расписание работ.
  • DevOps/CI-инженер:

    • добавить этапы проверки флага в pipeline;
    • обеспечить совместимость агентов сборки.

Скрипт-пример для рекурсивного включения флага (PowerShell)

$root = "C:\\project"
Get-ChildItem -Path $root -Directory -Recurse | ForEach-Object {
    $p = $_.FullName
    fsutil.exe file setCaseSensitiveInfo $p enable
}

Этот пример рекурсивно обходит каталоги и включает флаг для каждой найденной директории.

Ограничения и типичные проблемы

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

Совместимость и переносимость

  • Работает на NTFS, начиная с Windows 10 April 2018 Update.
  • Проекты, разработанные на Linux, обычно переносятся корректнее, если целевые каталоги помечены как чувствительные.
  • Для кроссплатформенной разработки рекомендуется иметь CI-станции на Linux и Windows с одинаковыми наборами тестов.

Быстрые тесты и сценарии приёма (test cases)

  1. Создать в чувствительной папке два файла: “test” и “Test” — оба должны существовать.
  2. Открыть папку в Проводнике и убедиться, что оба файла видны (в новых сборках Windows проводник корректно отображает оба).
  3. Попытаться отключить флаг при наличие коллизии — должна появиться ошибка.
  4. Создать файл в WSL и убедиться, что флаг установлен автоматически (если используется case=dir).

Факты: основные команды и термины

  • Включить: fsutil.exe file setCaseSensitiveInfo C:\путь enable
  • Отключить: fsutil.exe file setCaseSensitiveInfo C:\путь disable
  • Проверить: fsutil.exe file queryCaseSensitiveInfo C:\путь
  • Термин: DrvFs — механизм монтирования Windows-дисков в WSL; case=dir — опция, уважающая флаг NTFS.

Короткое объявление для рассылки (100–200 слов)

В Windows 10 появилась возможность включать чувствительность к регистру на уровне отдельных папок. Это особенно полезно разработчикам и командам, которые переносят проекты между Linux и Windows: папка с включённым флагом будет различать “file” и “File” как два разных файла. Управление осуществляется через утилиту fsutil.exe (PowerShell или Командная строка). Папки, созданные в WSL, автоматически получают нужный флаг благодаря опции DrvFs. При внедрении важно проверить наличие конфликтующих имён и протестировать сборку проекта; при отключении флага система потребует удаления конфликтующих файлов. Чувствительность не наследуется на подкаталоги — настройте каждую нужную папку отдельно.

Важные замечания

  • Сделайте резервную копию перед массовыми изменениями.
  • При работе в команде синхронизируйте правила именования файлов.

Итоги

  • Чувствительность к регистру в Windows 10 — инструмент для кроссплатформенной разработки.
  • Контролируется командой fsutil и может управляться из WSL через опции DrvFs.
  • Не забывайте о тестах, правах и возможных коллизиях имён.
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро