Имена папок становятся UPPERCASE при синхронизации с диском FAT32?

982
RPH

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

Я использую SyncToy 2.1 в Windows 10. Я синхронизирую файлы на USB-накопитель в формате FAT32.

Папки, имя папки которых меньше 9 символов и не содержит пробелов, копируются на USB в UPPERCASE, если имя папки содержит символы со смешанным регистром. Если имя папки меньше 9 символов, но содержит пробел, оно копируется правильно. Если имя папки превышает 8 символов, оно копируется правильно. имена папок в нижнем регистре (<9 символов и без пробелов) остаются в нижнем регистре, имена папок в верхнем регистре (<9 символов и без пробелов) остаются в верхнем регистре. Проблема только в смешанном случае.

Проблема затрагивает только имена папок, имена всех файлов копируются правильно, независимо от длины. Я проверил на нескольких компьютерах с Windows 10, и все они имеют ту же проблему. Я протестировал несколько USB-устройств FAT32, и все они имеют одну и ту же проблему. Проблема отсутствует при использовании файловой системы NTFS, однако мне нужно использовать FAT32.

Примеры (имя папки ПК -> имя папки USB):

Неправильно:

  • Тест -> ТЕСТ
  • Abcdefgh -> ABCDEFGH

Правильный:

  • Те ст -> Те ст
  • Abcdefghi -> Abcdefghi

Имена папок становятся UPPERCASE при синхронизации с диском FAT32?

У меня никогда не было этой проблемы раньше. Почему он делает это странное поведение внезапно?

0
Как были отформатированы тома? Поддержка LFN не включена. Tyson 6 лет назад 0
@Tyson Я отформатировал их с помощью стандартного диалогового окна форматирования Windows 10 (щелкните правой кнопкой мыши -> отформатировать). Этот метод всегда работал нормально, как я уже говорил, проблема началась только в последние несколько месяцев. Я мог бы попробовать использовать другой метод для форматирования диска в FAT32. Чтобы вы посоветовали ? У меня есть доступ к машине под управлением Ubuntu 16.04. Благодарю. RPH 6 лет назад 0
Я не могу продублировать эту проблему, я просто попытался использовать win10. Две мысли: 1) какой размер USB-накопителя? (возможно, мне нужно попробовать другой размер) Кроме того, это флэш-накопитель USB или внешний жесткий диск USB? (Я предполагал, что Flash) 2) SyncToy записывает некоторые файлы, чтобы помочь отслеживать синхронизацию, что произойдет, если вы создадите целую папку и наполните ее некоторыми обычными файлами - и для этой папки еще не существует ни одного из скрытых файлов synctoy? (повесьте эту новую папку на c: \, потому что я не уверен, сколько родительских папок synctoy ищет для статуса синхронизации,) Tyson 6 лет назад 0
Пара мыслей на тот случай, если вы захотите прослушать, попробовать и т. Д. Просто чтобы убедиться, что это не было случайностью, удалите эти папки, перезагрузите компьютер, а затем снова запустите задание, чтобы увидеть, какие результаты вы получите. Кроме того, вы используете командную строку для этого задания синхронизации или как вы запускаете его из графического интерфейса и т. Д.? Наконец, если вы хотите попробовать, если это связано, рассмотрите возможность обеспечения [включения длинных путей NTFS] (https://superuser.com/questions/1119883/windows-10-enable-ntfs-long-paths-policy-option-missing / 1119948 # 1119948). Я был бы удивлен, если это все, но достаточно легко проверить, чтобы устранить на всякий случай, возможно. Pimp Juice IT 6 лет назад 0
@Tyson Спасибо за ответ. Довольно странно, что вы не можете повторить проблему. Чтобы ответить на ваш первый вопрос, я попытался использовать флэш-накопитель объемом 2 и 4 ГБ. RPH 6 лет назад 0
@Tyson Что касается вашего второго вопроса, я сделал, как вы предложили, и результат тот же. Я создал «Новая папка» в C: \ и создал внутри нее папку «Test». Я переформатировал USB как FAT32. Я создал новую пару папок SyncToy с левой папкой «C: \ New Folder \» и правой папкой «E: \». После запуска синхронизации папок папка «TEST» появилась на USB-накопителе E: \. Я сделал несколько скриншотов, которые я загружу, чтобы проиллюстрировать это лучше. RPH 6 лет назад 0
@Tyson Вот ссылка на скриншоты: [ссылка] (https://1drv.ms/f/s!AmrKrfHcOLAtgQzzeQ8tUqaCG0_E) RPH 6 лет назад 0
@PimpJuiceIT Результат тот же. Я попытался запустить его, используя как командную строку, так и графический интерфейс, результат тот же. Я включил длинные пути NTFS в реестре, перезапустил и попробовал заново заново, результат тот же. RPH 6 лет назад 0
@ Тайсон Можете ли вы повторить проблему, если вы выполните те же шаги, что и я? RPH 6 лет назад 0
Я дошел до того, что полностью удалил и переустановил SyncToy и начал заново с нуля. Проблема все еще сохраняется. Что-то определенно изменилось в Windows за последний месяц, что вызывает эту проблему, потому что в начале месяца, когда я впервые его настраивал, все работало нормально. RPH 6 лет назад 0
Извините @RPH Я не получал этот повторный тест в последний раз, прежде чем уехал в поездку. (Только принес с собой iPad) ... следующий шанс на повторное тестирование не в течение 12 дней. Tyson 6 лет назад 0

1 ответ на вопрос

0
Dennis Johnson

Проблема заключается в том, что имя файла / каталога на самом деле состоит из 2 имен: старого (короткого) соглашения 8.3 и нового (длинного) имени из 255 символов.
Специально для файловых систем FAT система обновляет оба этих имени всякий раз, когда вы даете имя файлу. Краткое имя создается автоматически на основе первых символов длинного имени (например, SyncToy_4264be.dat становится SYNCTOY ~ 1.DAT ). Если имя соответствует старому соглашению об именах, длинное имя отбрасывается. Исходя из этого, кажется, что Windows 10, когда речь идет о регистре имен 8.3, не сохраняет информацию о регистре символов при записи в том FAT и преобразует все символы в верхний регистр. Вы можете прочитать некоторые подробности об именах файлов здесь:
В старые времена DOS не было никакой чувствительности к регистру имен файлов, и программы могли свободно отображать их по своему усмотрению (либо все прописные, либо все строчные). Внутренне, однако, они были сохранены все в верхнем регистре.


Длинные имена файлов

Это работало хорошо несколько месяцев назад, хотя с Windows 10. Я также не понимаю, почему Te-st копирует правильно, а Test - нет? Проблема также не влияет на имена файлов - затрагиваются только имена папок. RPH 6 лет назад 0
И кстати, имена папок в нижнем регистре (<9 символов и без пробелов) остаются в нижнем регистре, имена папок UPPERCASE (<9 символов и без пробелов) остаются в UPPERCASE. Проблема только в смешанном случае. RPH 6 лет назад 0
Пробелы в именах не допускаются в именах 8.3, поэтому они преобразуются в нечто вроде _TE ~ 1_. Я подозреваю, что какое-то обновление вызвало эту проблему, затрагивая только папки. Я буду исследовать больше и дам вам знать. Dennis Johnson 6 лет назад 0