Странная функциональность в .NET Directory.GetFiles(), когда шаблон поиска содержит 3 символа для расширения

Недавно я столкнулся со странной функциональностью от Microsoft:

Предположим, что наша папка c:\tmp123 содержит 3 файла -
1.txt
2.txtx
3.txtxt

a) Вызов Directory.GetFiles(@"C:\tmp123", "*.txt") дает 3 возвращаемых элемента.
b) Вызов Directory.GetFiles(@"C:\tmp123", "*.txtx") дает 1 возвращенный элемент.

По мнению Microsoft это ожидаемое поведение (см. заметку в MSDN).

Мои вопросы таковы:

  1. Почему Microsoft решила реализовать такую странную функциональность?

  2. Как я могу преодолеть эту проблему?
    . т.е. как мне создать шаблон поиска, который будет возвращать только расширение *.txt и не возвращать *.txtx, *.txtstarngefunctionality и т.д.?

6
задан pnuts 1 November 2015 в 00:19
поделиться