Вопрос № 45512: Каким образом при помощи WinAPI можно определить количество файлов в папке?
При беглом осмотре MSDN ничего подходящего не нашел. Единственное что приходит в голову - пройтис с помощью FindNextFile и посчитать... Но это, имхо, криво......
Вопрос № 45.512
Каким образом при помощи WinAPI можно определить количество файлов в папке?
При беглом осмотре MSDN ничего подходящего не нашел. Единственное что приходит в голову - пройтис с помощью FindNextFile и посчитать... Но это, имхо, криво...
Отправлен: 07.06.2006, 14:01
Вопрос задал: Igorkov (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Лысков Игорь Витальевич
Здравствуйте, Igorkov!
И чем не нравится FindFirstFile, FindNextFile?
Другого пути, IMHO, нет.
--------- Удачи!
Ответ отправил: Лысков Игорь Витальевич (статус: Студент)
Ответ отправлен: 07.06.2006, 14:36
Отвечает: mix_mix
Здравствуйте, Igorkov!
Ох, как я люблю NativeAPI, эти недокументированные функции, настал мой звездный час :) Вам подойдет функция ZwQueryDirectoryFile (ну или NtQueryDir... - одно и тоже) из ntdll.dll. Данная функция создает в памяти структуры, общий размер которых зависит от кол-ва файлов в папке. То есть зная размер буфера, Вы можете определить кол-во файлов.
Более подробно Вы можете найти про эту функцию в Интернете. Правда майкрософт нефига ничего не документирует, поэтому в Интернете Вы мало что найдете, тем более на русском :)
Ссылка на синтаксис функции:
http://undocumented.ntinternals.net/UserMode/Undocumented%20Functions/NT%20Objects/File/NtQueryDirectoryFile.html
З.Ы. Если будете искать в Интернете, советую заглянуть на сайты, посвященные драйверам, там эта будет.
Ответ отправил: mix_mix (статус: 4-ый класс)
Ответ отправлен: 07.06.2006, 20:18