powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / FindFirstFile не отображается имя файла
4 сообщений из 4, страница 1 из 1
FindFirstFile не отображается имя файла
    #34789889
ustya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте, Уважаемые! Проблема такова, ищу файл по маске, при нахождении его пытаюсь отобразить на экране, но за место имени файла отображает 0, подскажите в чем проблема?

Пишу на eMbedded VC++

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
		WIN32_FIND_DATA wfd; 
		HANDLE h_file; 
	
		h_file = FindFirstFile(_T("\\Temp\\*.pkz"),&wfd); 

		while (GetLastError() != ERROR_NO_MORE_FILES) 
		{ 
			printf(" %s \n", wfd.cFileName);  
			FindNextFile(h_file,&wfd); 
		}


Спасиба!
...
Рейтинг: 0 / 0
FindFirstFile не отображается имя файла
    #34790218
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а что возвращает FindFirstFile ? чему равен h_file?
...
Рейтинг: 0 / 0
FindFirstFile не отображается имя файла
    #34790593
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
почитай пример использования этой функции в мсдне
...
Рейтинг: 0 / 0
FindFirstFile не отображается имя файла
    #34790700
ErV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ustya wrote:

> WIN32_FIND_DATA wfd;
> HANDLE h_file;
>
> h_file = FindFirstFile(_T("\\Temp\\*.pkz"),&wfd);
>
> while (GetLastError() != ERROR_NO_MORE_FILES)
> {
> printf(" %s \n", wfd.cFileName);
> FindNextFile(h_file,&wfd);
> }
>
Вы первый найденный файл пропустили, сразу ищите второй, которого может
и не быть. Вот работающий сканнер каталогов, разбирайтесь по аналогии.

вот работающий сканнер каталогов.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
#include <windows.h>
#include <stdio.h>
#include <string>

using namespace std;
#define MAX_PATH  512 

bool is_dots(const char* dir){
        if (strcmp(dir, ".")== 0 ) return true;
        if (strcmp(dir, "..")== 0 ) return true;
        return false;
}

void scan_directory(const char* dir, const char* mask){
        printf("scanning directory %s\n", dir);

        char filemask[MAX_PATH];
        sprintf(filemask, "%s\\%s", dir, mask);

        WIN32_FIND_DATA wf;
        HANDLE hf = FindFirstFile(filemask, &wf);
        if (hf != INVALID_HANDLE_VALUE){
                do{
                        if (!is_dots(wf.cFileName)){
                                if (wf.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY){
                                        char buf[MAX_PATH];     
                                        sprintf(buf, "%s\\%s", dir, wf.cFileName);
                                        scan_directory(buf, mask);      
                                }
                                else 
                                        printf("%s\\%s\n", dir, wf.cFileName);
                        }
                }while (FindNextFile(hf, &wf));
                FindClose(hf);
        }
}

int main(int argc, char** argv){
        WIN32_FIND_DATA wf;
        scan_directory("С:", "*");
        return  0 ;
}

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / FindFirstFile не отображается имя файла
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]