Есть ли альтернатива Windows FindFirstFile / API FindNextFile, который не выполняет поиск по коротким именам файлов?

Я использую вызовы Windows API FindFirstFile и FindNextFile для поиска файлов, соответствующих определенная строка с подстановочными знаками в каталоге. Например, мне может потребоваться найти все файлы XML в каталоге, поэтому я выполняю поиск по шаблону «* .xml».

У меня возникла проблема: если я ищу трехбуквенное расширение, а расширение файла начинается с этого трехбуквенного расширения, оно будет обнаружено при моем поиске, даже если расширение содержит больше символов после первых 3. Например, если мой файл называется somelongname.xmlaaaa, он будет обнаружен при поиске по запросу «* .xml». Краткое имя этого файла somelo ~ 1.xml, что соответствует моей строке с подстановочными знаками.

Я мог бы выполнить собственное сопоставление подстановочных знаков, чтобы обойти эту проблему, но, по-видимому, Windows API сможет сделать это более эффективно, чем я, и мой код будет проще. Насколько я могу судить, невозможно заставить эти функции игнорировать короткие имена. Есть ли какие-либо API, предоставляемые Windows с этой функцией?

11
задан Chris Vasselli 9 November 2011 в 19:29
поделиться