Использование компонентов Delphi 2007 и TMS для утилит и интерфейса Unicode (обновление до Delphi 2009 для поддержки Unicode не предусмотрено).
Я храню список имен файлов в списке строк (TTntStringList). Это отсортировано и нечувствительно к регистру. Процедура сортировки по умолчанию использует CompareStringW (LOCALE_USER_DEFAULT, NORM_IGNORECASE, ...) для сравнения строк (и то же самое для Find). Однако это проблема, потому что это будет приравнивать dummyss.txt к dummyß.txt (например), но в NTFS совершенно законно, чтобы эти два файла находились в одной папке, то есть они рассматриваются как разные имена.
Насколько я понимаю, в Vista и новее правильным способом сравнения имен файлов является использование CompareStringOrdinal. Это правильно?
В системах, предшествующих Vista, что будет правильным? Я считаю, что это должно быть CompareStringW (LOCALE_INVARIANT, ...), но я не совсем уверен.
Спасибо