Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
 Аватар для andreyananas
27 / 27 / 11
Регистрация: 15.10.2013
Сообщений: 880

Разобрать пример кода, который отображает все папки на определенном диске

19.08.2014, 19:32. Показов 1498. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Программа отображает все папки на Диске D:
Помогите разобраться как это работает (желательно закомментировать каждую функцию/строку)
п.с. для понимающих не должно составить труда, заранее благодарен.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include "stdafx.h"
#include <iostream>
#include <Windows.h>
 
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    WIN32_FIND_DATA wf;
    HANDLE hFile = FindFirstFile("D:\\*.*", &wf);
    if (hFile == INVALID_HANDLE_VALUE)
        cout << " Error!" << endl;
    BOOL bOK(TRUE);
    while (bOK)
    {
        if (wf.dwFileAttributes &FILE_ATTRIBUTE_DIRECTORY)
            cout << wf.cFileName << endl;
        else
            cout << " " << wf.cFileName << endl;
        bOK = FindNextFile(hFile, &wf);
    }
    FindClose(hFile);
    return 0;
}
Добавлено через 1 час 19 минут
вот зачем сюда переместили тему????
Мне тут не помогут(

Добавлено через 2 часа 8 минут
ау, есть тут кто?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
19.08.2014, 19:32
Ответы с готовыми решениями:

Создание графика, который отображает пример
Дан пример: Задание: &quot;СДелать график функции с помощью TChart. Таблицу данных получить путем изменения параметра X с шагом h. Вывод...

Разобрать пример кода C#
Здравствуйте дорогие форумчане! С Рождеством Христовым Вас всех! И с Новым годом! Гармонии Вам и Вашему дому, и счастья в новом году! ...

Перегрузка методов - разобрать пример кода
Вечер добрый. Есть классы: class Cl1 { public virtual void Fooo(int x) { ...

10
19.08.2014, 19:36

Не по теме:

Есть, есть. Просто ваш вопрос настолько примитивен и ответ на него так легко ищется в любом учебнике по WinAPI, что желающих тратить свое время на этот сизифов труд просто не нашлось.

0
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
19.08.2014, 19:36
FindFirstFile запускает поиск файловых объектов по маске.

В данном случае маска - "D:\*.*", т.е. все объекты в корне диска D.
На каждом шаге проверяется атрибут объекта, если это папка, то в
атрибутах установлен бит FILE_ATTRIBUTE_DIRECTORY.

Все найденные объекты выводятся на консоль (cout).

FindNextFile выполняет переход к следующему шагу поиска.
Когда она возвращает NULL, объектов больше нет, хэндл поиска
закрывается с помощью FindClose.
1
19.08.2014, 19:46

Не по теме:

Цитата Сообщение от andreyananas Посмотреть сообщение
ау, есть тут кто?
Есть тут MSDN. Кому-то лень пойти и почитать.

0
 Аватар для andreyananas
27 / 27 / 11
Регистрация: 15.10.2013
Сообщений: 880
19.08.2014, 20:30  [ТС]
Раз все так просто, тогда юзеры которые фармят спасибки и ЛО легко это заработают, в чем проблема то?)
0
 Аватар для oxyfat
68 / 65 / 21
Регистрация: 01.05.2014
Сообщений: 247
19.08.2014, 20:48
Цитата Сообщение от andreyananas Посмотреть сообщение
Помогите разобраться как это работает
Буквально, вчера: Как работает рекурсия?
1
 Аватар для andreyananas
27 / 27 / 11
Регистрация: 15.10.2013
Сообщений: 880
19.08.2014, 21:07  [ТС]
Цитата Сообщение от oxyfat Посмотреть сообщение
Буквально, вчера: Как работает рекурсия?
Спс, но нету описания(((
0
 Аватар для andreyananas
27 / 27 / 11
Регистрация: 15.10.2013
Сообщений: 880
19.08.2014, 22:25  [ТС]
Цитата Сообщение от Vourhey Посмотреть сообщение
Есть тут MSDN. Кому-то лень пойти и почитать.
Можно ссылку на эти функции в MSDN
0
Native x86
Эксперт Hardware
 Аватар для quwy
6856 / 3789 / 1025
Регистрация: 13.02.2013
Сообщений: 11,861
19.08.2014, 22:27
Цитата Сообщение от andreyananas Посмотреть сообщение
Можно ссылку на эти функции в MSDN
И что в этом сложного-то?
0
 Аватар для andreyananas
27 / 27 / 11
Регистрация: 15.10.2013
Сообщений: 880
20.08.2014, 15:52  [ТС]
Цитата Сообщение от quwy Посмотреть сообщение
Выходит не я один, раз ответа на такую фигню пришлось ждать пол дня.
Тут часто долго не отвечают и на нормальные вопросы.

Добавлено через 1 час 12 минут
Цитата Сообщение от quwy Посмотреть сообщение
И что в этом сложного-то?
Лень великая сила... негативно заряжена)

Добавлено через 16 часов 9 минут
Со всем вроде разобрался.
Не понятной осталась эта строка:
C++
1
if (wf.dwFileAttributes &FILE_ATTRIBUTE_DIRECTORY)
dwFileAttributes - атрибут файла из структуры WIN32_FIND_DATA
а это FILE_ATTRIBUTE_DIRECTORY одно из его значений, верно?
Тогда что является true для этой строки?
0
Native x86
Эксперт Hardware
 Аватар для quwy
6856 / 3789 / 1025
Регистрация: 13.02.2013
Сообщений: 11,861
20.08.2014, 16:27
Лучший ответ Сообщение было отмечено andreyananas как решение

Решение

Цитата Сообщение от andreyananas Посмотреть сообщение
Не понятной осталась эта строка
Это битовая операция, которая проверяет, установлены ли в wf.dwFileAttributes те биты, которые установлены в FILE_ATTRIBUTE_DIRECTORY. В данном случае, если хоть один общий бит есть, то результатом операции будет ненулевое значение, и условие выполнится. Это не совсем корректный код, потому что если FILE_ATTRIBUTE_DIRECTORY состоит из нескольких единичных битов, то условие будет выполнятся даже при частичном совпадении, что не есть правильно. Поэтому корректней будет так:
C++
1
if (wf.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY == FILE_ATTRIBUTE_DIRECTORY)
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.08.2014, 16:27
Помогаю со студенческими работами здесь

IDisposable для пользовательских классов. Разобрать пример кода
Есть некий объект, одно поле которого - это класс-наследник IDisposable. Соответственно, данный класс тоже должен быть наследником...

Вывести все папки на диске
в общем программа должна выводить все папки на диски. Но что то пошло не так и работает только с флешками using System; using...

Проводник не отображает папки с установленными программами (Total Commander отображает)
Такая проблема в 8.1 при установке программ под правами администратора их не видно, то есть хоть папки и файлы создаются, но их просто не...

Вирус, который прячет информацию на дисках и флешках в нечитаемую папку, а вместо этого размещает на диске/флешке ярлык этой папки
Здравствуйте. Проблема полностью идентична описанной здесь: https://www.cyberforum.ru/viruses/thread798108.html На диске или флешке...

Как получить все папки и файлы хранящиеся на диске?
Здравствуйте! Помогите пожалуйста в написании кода, с помошью которого можно получить все папки и файлы хранящиеся на диске D: ...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru