сопоставление с образцом в .Net согласуется с сопоставлением с образцом IsolatedStorageFile.GetFileNames () - PullRequest
3 голосов
/ 26 декабря 2010

Предоставляется ли логика сопоставления с образцом, используемая этим API, для повторного использования где-то в .Net Framework?

Что-то в форме FilePatternMatch( string searchPattern, stringfileNameToTest ) - это то, что я ищу.

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

Если поведение не выставленодля повторного использования будет достаточно решения с использованием регулярных выражений (например, сопоставление с шаблоном глобуса в .NET ), что позволит мне сэкономить время, затрачиваемое на проверку мелких деталей того, каким должно быть поведение.

Возможноодин из ответов, размещенных в теме, указанной выше, является правильным.Поскольку я еще не подтвердил точное поведение, я не смог определить это с первого взгляда.Не стесняйтесь указывать мне на один из этих ответов, если вы знаете, что по поведению оно точно соответствует API, указанному в заголовке вопроса.

Я могу предположить, что сопоставление с образцом согласуется с тем, как обрабатывается DOS * и?в именах файлов 8.3 (я знаком с поведенческими нюансами этой реализации), но разумно предположить, что Microsoft разработала поведение сопоставления с образцом для имен файлов в течение более десяти лет, так что я решила проверить это, прежде чем продолжить на этом предположении.

1 Ответ

0 голосов
/ 06 марта 2011

Правила сопоставления с образцом, используемые IsolatedStorageFile.GetFileNames(), такие же, как и в System.IO.Path.Они оба используют Win32 API FindFirstFile / FindNextFile Функции, а именно:

Каталог или путь, а также имя файла, которое может содержать символы подстановки,например, звездочка (*) или знак вопроса (?).

Этот параметр не должен иметь значение NULL, недопустимую строку (например, пустую строку или строку, в которой отсутствует завершающий нулевой символ) или заканчиваться завершающей обратной косой чертой ().

Если строка оканчивается подстановочным знаком, точкой (.) Или именем каталога, пользователь должен иметь права доступа к корню и всем подкаталогам на пути.

В версии этой функции ANSI имяограничено MAX_PATH символов.Чтобы расширить этот предел до 32 767 широких символов, вызовите версию функции в Юникоде и добавьте "\? \" К пути.Для получения дополнительной информации см. Именование файла

.

...