Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
rus_phantom
6 / 6 / 1
Регистрация: 31.03.2011
Сообщений: 69
#1

FindFirstFile&&FindNextFile - C++

03.01.2012, 00:40. Просмотров 880. Ответов 3
Метки нет (Все метки)

Работаю в Visual Studio 2010. Есть такой код:
C++
1
2
3
4
5
6
7
8
9
10
void print_diffs()
{
    WIN32_FIND_DATA fd;
    HANDLE Handle;
    Handle=FindFirstFile(LPCWSTR("C:\\"),&fd);
    while(FindNextFile(Handle,&fd))
    {
        cout <<fd.cFileName<<endl;
    }
}
Он по идее должен вывести имена всех файлов и папок на диске С, однако он ничего не выводит. Почему?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.01.2012, 00:40     FindFirstFile&&FindNextFile
Посмотрите здесь:

C++ Изменение формата данных && работа с файлом
C++ Классы && С++ Отложение объявление на потом
В программе объявлена переменная int x=1; определить значение выражения х>0 && x<1 ? 10/x : 10*x C++
C++ Очистка потока ввода && строки
[struct tm] или нестыковка в C89 & C++98 & C++11? C++
Как проверить, принадлежит ли символ заданному диапазону m...n, кроме if (c <= n && c >= m) ? C++
Почему в выражении нельзя использовать запятую вместо && C++
Nested classes && enum declaration C++
C++ Функция поиска файлов, и вывод списка найденных (использую FindFirstFile, FindNextFile)
C++ Напишите цикл, эквивалентный приведенному выше циклу, не пользуясь операторами && и ||
C++ Strcpy_s выдает ошибку L Buffer is too small & & 0
C++ Вызвать функцию базового класса с ссылочным квалификатором &&

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Barmaley
10 / 10 / 1
Регистрация: 09.04.2009
Сообщений: 66
03.01.2012, 01:48     FindFirstFile&&FindNextFile #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <windows.h>
#include <iostream>
#include <conio.h>
 
void main()
{
    WIN32_FIND_DATA findData;
    HANDLE hFind;
    hFind = FindFirstFile("C:\\*", &findData);
    if (hFind == INVALID_HANDLE_VALUE)
    {
        std::cout << "ERRORE" << std::endl;
        std::cout << GetLastError() << std::endl;
    }
    while(FindNextFile(hFind, &findData))
        {
                std::cout << findData.cFileName << std::endl;
        }
    getch();
}
Configuration Properties -> General поменяйте Character Set с Use Unicode Character Set на Use Multi-Byte Character Set.

И обратите внимание на формат строки советую заглянуть в MSDN FindfirstFile()
Диман56
22 / 22 / 0
Регистрация: 07.11.2011
Сообщений: 154
03.01.2012, 06:28     FindFirstFile&&FindNextFile #3
Нет маски поиска. Вот и не ищет. Тоже как-то с этим намучался.
C
1
"C:\\*"
вот как надо. И включите многобайтовую кодировку.
-=ЮрА=-
Заблокирован
Автор FAQ
03.01.2012, 10:49     FindFirstFile&&FindNextFile #4
rus_phantom, посмотрите сюда
Поиск файла по шаблону
О рекурсивном поиске я вобще тут ни строки не увидел, чтож найдите в моём коде обработку єтого условия if(pDATA.dwFileAttributes != FILE_ATTRIBUTE_DIRECTORY)

Не по теме:

Цитата Сообщение от Диман56 Посмотреть сообщение
И включите многобайтовую кодировку.
Диман56, зачем её включать???FindFirstFileA - работает с обычными char-ами, своими LPWSTR только жизнь себе усложняете

Yandex
Объявления
03.01.2012, 10:49     FindFirstFile&&FindNextFile
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru