Всем добрый вечер. Столкнулся со странный поведением функций 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
ZS>Так вот, если в папке лежат файлы Form1.txt,Form2.txt и Form3.txt, то программа находит Form1.txt. Но если в папке лежат файлы Форма1.txt,Форма2.txt и Форма3.txt, то программа выводит ВСЕ 3 файла! Почему так происходит?? В чем тут подводные камни? Кто-нибудь сталкивался с подобным? Заранее спасибо всем откликнувшимся)
обсуждалось много много раз. Она ищет "короткие" имена. Запусти dir /x и посмотри.
---
С уважением,
Сергей Мухин
Re[2]: Странное поведение FindFirstFile/FindNextFile
Здравствуйте, Сергей Мухин, Вы писали:
СМ>Здравствуйте, ZegSoft, Вы писали:
ZS>>Так вот, если в папке лежат файлы Form1.txt,Form2.txt и Form3.txt, то программа находит Form1.txt. Но если в папке лежат файлы Форма1.txt,Форма2.txt и Форма3.txt, то программа выводит ВСЕ 3 файла! Почему так происходит?? В чем тут подводные камни? Кто-нибудь сталкивался с подобным? Заранее спасибо всем откликнувшимся)
СМ>обсуждалось много много раз. Она ищет "короткие" имена. Запусти dir /x и посмотри.
Спасибо, теперь все ясно. А можно это как-то исправить? Есть альтернатива? Ведь стандартный поисковик "Пуск-Найти" ищет корректно.
Re[3]: Странное поведение FindFirstFile/FindNextFile
Здравствуйте, ZegSoft, Вы писали:
СМ>>обсуждалось много много раз. Она ищет "короткие" имена. Запусти dir /x и посмотри.
ZS>Спасибо, теперь все ясно. А можно это как-то исправить? Есть альтернатива? Ведь стандартный поисковик "Пуск-Найти" ищет корректно.
в WIN32_FIND_DATA все должно быть, что бы разобраться.