System.Kind возвращает противоречивые результаты в проводнике файлов и хранилище файловых запросов в UWP - PullRequest
1 голос
/ 04 марта 2020

У меня есть приложение, которое правильно запрашивает файлы и папки при работе на windows 10 Pro machine 18363 с языком операционной системы English UK. В запросах интерес представляет использование System.Kind, которое используется в приложении, а также в File Explorer search.

https://docs.microsoft.com/en-us/windows/win32/properties/building-property-handlers-user-friendly-kind-names https://docs.microsoft.com/en/windows/win32/properties/props-system-kind

Выполнение таких запросов через приложение uwp или File Explorer возвращает неверные результаты на другом компьютере, который имеет такую ​​же сборку, но является Windows 10 Family с языком операционной системы French. Документы говорят, что строки не локализованы, и это предложение сбивает с толку.

Я получаю следующие результаты при выполнении запросов к папке на рабочем столе, содержащей изображения, видео и текстовые файлы:

System.Kind: picture Возвращает изображения; следовательно OK

System.Kind: video Возвращает видео; следовательно, OK

System.Kind: видео ИЛИ System.Kind: изображение Возвращает только изображения, НЕ OK

System.Kind: изображение ИЛИ System.Kind: video Возвращает только картинки, НЕ OK

И еще более странно следующее

System.Kind: изображение ИЛИ System.Kind: video Возвращает только картинки, НЕ ОК

System.Kind: видео ИЛИ System.Kind: изображение Возвращает видео ИЛИ изображения, следовательно, ОК

Я также попытался изменить ИЛИ для французского OU , но это не помогло.

UWP должен запрашивать любую языковую среду ОС с универсальным подходом без локализации строки запроса, и для меня это почему System.Kind предпочтительнее, чем kind (английский sh) или sorte (французский).

Из перечисления System.Kind мне следует использовать picture или видео , но во французской ОС это не удается, а image работает только в одном порядке

1) Как задать запросы выше на языке i? Вариантный способ?

2) Почему последние две операции НЕ являются коммутативными?

1 Ответ

2 голосов
/ 04 марта 2020

System.Kind - это перечисление , поэтому канонический синтаксис:

System.Kind:System.Kind#Picture OR System.Kind:System.Kind#Video

Все остальное возвращает странные результаты в локализованных Windows версиях, для некоторые причины: -)

System.Kind#Picture соответствует тому, что объясняется в документации:

Для определенного семанти c типа T со значениями или диапазонами от N₁ до Nₖ, канонический синтаксис для i-го значения или диапазона - это каноническое имя для T, за которым следует символ #, за которым следует Ni

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...