Сравнение имени файла Win32

Поиск пакета делает больше, чем просто установка пути.

Вы можете добавить путь к папке Qt в CMAKE_PREFIX_PATH, чтобы избежать этого следующим образом:

export CMAKE_PREFIX_PATH=$CMAKE_PREFIX_PATH:/home/user/Qt/5.12.0/gcc_64

или вы можете установить двоичные файлы qt для ROS, используя apt-get Like This :

sudo apt-get install ros-kinetic-libqt-*

14
задан Mihai Limbășan 4 January 2009 в 07:54
поделиться

2 ответа

Приблизительный ответ является при Сравнении имен файлов Unicode правильным путем.

В основном рекомендация является к верхнему регистру обеими строками (использование CharUpper, CharUpperBuff, или LCMapString), затем сравните использование двоичного сравнения (т.е. memcmp или wmemcmp, не CompareString с инвариантной локалью). Файловая система не делает нормализации Unicode, и правила случая не зависят от настроек локали.

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

7
ответ дан 1 December 2019 в 13:48
поделиться

Сравнение имен файлов в собственном коде и не выдерживает сравнение, имена файлов являются несколькими хорошими сообщениями в блоге по этой теме. Первое имеет код C/C++ для OrdinalIgnoreCaseCompareStrings, и второе говорит Вам, как это не всегда работает на имена файлов и что сделать для смягчения этого.

Затем существуют проблемы Unicode. В то время как они новые OrdinalIgnoreCase алгоритмы сравнения строк являются замечательными для Вашего локального диска NTFS, они не могли бы привести к правильному ответу на Вашем диске FAT или сетевому ресурсу.

Таким образом, каков ответ? Когда возможно, позвольте файловой системе сказать Вам. CreateFile может сказать Вам, если данное имя файла существует. Просто выберите правильное расположение создания. Если необходимо выдержать сравнение с дескрипторами, можно часто использовать GetFileInformationByHandle; посмотрите на dwVolumeSerialNumber/nFileIndexHigh/nFileIndexLow.

6
ответ дан 1 December 2019 в 13:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: