Странное поведение FindFirstFile/FindNextFile
От: ZegSoft Россия  
Дата: 19.06.13 18:05
Оценка:
Всем добрый вечер. Столкнулся со странный поведением функций FindFirstFile/FindNextFile.
Есть простенький код, который должен искать в папке C:\test все файлы, окончивающиеся символами 1.txt:

#include "stdafx.h"
#include "iostream"
#include <windows.h>
#include <tchar.h>
#include <stdio.h>

int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL,"russian");
    HANDLE hSearch = NULL;
    WIN32_FIND_DATA    wfd;
    memset(&wfd, 0, sizeof(WIN32_FIND_DATA));
    if (!((hSearch = FindFirstFile("C:\\test\\*1.txt", &wfd)) == INVALID_HANDLE_VALUE))
    do
        std::cout<<wfd.cFileName<<std::endl;
    while (FindNextFile(hSearch, &wfd)); 
    FindClose (hSearch);
    return 0;
}


Так вот, если в папке лежат файлы Form1.txt,Form2.txt и Form3.txt, то программа находит Form1.txt. Но если в папке лежат файлы Форма1.txt,Форма2.txt и Форма3.txt, то программа выводит ВСЕ 3 файла! Почему так происходит?? В чем тут подводные камни? Кто-нибудь сталкивался с подобным? Заранее спасибо всем откликнувшимся)


20.06.13 08:52: Перенесено модератором из 'C/C++. Прикладные вопросы' — Odi$$ey
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.