Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / FindFirstFile не отображается имя файла / 4 сообщений из 4, страница 1 из 1
11.09.2007, 08:24:16
    #34789889
ustya
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FindFirstFile не отображается имя файла
Здравствуйте, Уважаемые! Проблема такова, ищу файл по маске, при нахождении его пытаюсь отобразить на экране, но за место имени файла отображает 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
11.09.2007, 10:28:07
    #34790218
egorych
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FindFirstFile не отображается имя файла
а что возвращает FindFirstFile ? чему равен h_file?
...
Рейтинг: 0 / 0
11.09.2007, 11:43:22
    #34790593
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FindFirstFile не отображается имя файла
почитай пример использования этой функции в мсдне
...
Рейтинг: 0 / 0
11.09.2007, 12:09:27
    #34790700
ErV
ErV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FindFirstFile не отображается имя файла
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
Форумы / C++ [игнор отключен] [закрыт для гостей] / FindFirstFile не отображается имя файла / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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