zg, чо-т я не понял. Под XP в Fat32 файлы считаются разными, а под Windows-10 - одинаковыми??? Извините… Проблема не в файловой системе, а в реализации MoveFile . Скорее всего, в Win-10 "оптимизировали" типа если файл одинаковый с точки зрения файловой системы, то просто возвращается true и ничего не делается.
buniak_a_h wrote: ↑Thu 30 Jan, 2020 19:23zg, чо-т я не понял. Под XP в Fat32 файлы считаются разными, а под Windows-10 - одинаковыми???
нет. они везде считаются одинаковыми. но под xp одно в другое напрямую переименовать можно.
buniak_a_h wrote: ↑Thu 30 Jan, 2020 19:23Проблема не в файловой системе, а в реализации MoveFile . Скорее всего, в Win-10 "оптимизировали" типа если файл одинаковый с точки зрения файловой системы, то просто возвращается true и ничего не делается.
да, скорее всего так и есть. под проблемой в фс я имел ввиду, что такое поведение вызвано тем, как фс сравнивает имена.
zg, думаете, NTFS сравнивает по-другому? Пробовали создать файл a.txt и A.txt ? Получилось? Если да - напишите, пожалуйста, как добились. Я меня не получается. Отсюда я делаю вывод - NTFS тоже считает их одним файлом; просто Win10 делает указанную проверку ("оптимизацию") для FAT и не делает для NTFS (и её наследников типа ReFS). Возможно, вывод неправильный…
Last edited by buniak_a_h on Thu 30 Jan, 2020 19:46, edited 1 time in total.
Yegor, командой copy создать два файла, отличающихся только регистром, мне не удалось. Как Вы этого добились? С линукса (с FTP-сервера?) копировали?
-- upd
на команду fsutil.exe file SetCaseSensitiveInfo C:\Temp\200130 enable
получаю ответ Такой запрос не поддерживается.. При этом на диске C: - NTFS. ЧЯДНТ?
--
Ещё. То же, но disable - нормально (ответ - Атрибут "с учетом регистра" в каталоге C:\Temp\200130 отключен.)
Last edited by buniak_a_h on Thu 30 Jan, 2020 21:00, edited 2 times in total.
buniak_a_h, у меня Win 10 1909, SetCaseSensitiveInfo поддерживается не с первой версии 10-ки, а с какого-то билда (возможно с добавления Win Linux Subsystem).
Файлы создавал в Фаре по ShiftF4
Команда "copy a.txt A.txt" не работает и возвращает "The file cannot be copied onto itself.". Но это ожидаемо, никто командный процессор переделывать не будет.
Мы не можем ждать милостей от Фара, взять их у него — наша задача! (C) Мичурин
buniak_a_h wrote: ↑Thu 30 Jan, 2020 20:51
получаю ответ Такой запрос не поддерживается.. При этом на диске C: - NTFS. ЧЯДНТ?
Не установили Windows Subsystem for Linux. В PowerShell: Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux и перезагрузка. После этого SetCaseSensitiveInfo начинает работать.