· Начало · Статистика · WASM.RU · Noir.Ru ·

 WASM Phorum (Оффлайн - 24.11.2003) —› WASM.WIN32 —› Как заставить FindFirstFile/FindNextFile выводить

Посл.отвђт Сообщенiе


Дата: Апр 5, 2003 18:17:14

Привет!
Как заставить FindFirstFile и FindNextFile выводить скрытые/системные папки? А если нельзя, то чем искать? Спасибо.


Дата: Апр 6, 2003 11:34:44

Так в структуре WIN32_FIND_DATA есть же флажки FILE_ATTRIBUTE_HIDDEN, FILE_ATTRIBUTE_SYSTEM. Или это не то?


Дата: Апр 6, 2003 15:23:09

Насколько я понимаю, эта структура заполняется уже после того как файл или папка были найдены. Проблема в том, что функция скрытые и системные файлы выдает, а папки нет :(


Дата: Апр 7, 2003 06:48:58

alеx
У меня выдает полное содержимое требуемого каталога. Проверял "C:\\*.*" (там есть Recycled с атрибутами HS) на w2k и w98se.

Какая ОС?
Как Вы определяете, что папки не выдает?


Дата: Апр 7, 2003 15:40:00

Какая ОС?
Win98
Как Вы определяете, что папки не выдает?
Записываю в файл, а в списке их нет. Абыдна, да.


Дата: Апр 7, 2003 20:44:42

На всякий случай код на Си. Что я делаю неправильно? Кроме выбора языка ;)))

--------------------------------------------
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <string.h>

int ListFiles(char*);
int ListFiles(char *Path)
{
HANDLE fHandle;
WIN32_FIND_DATA wfd;
char *FileName=malloc(strlen(Path)+5);

if (strlen(Path))
{
strcpy(FileName, Path);
if (FileName[strlen(FileName)-1]!='\\')
{
strcat(FileName, "\\");
}
}

strcat(FileName, "*.*");
printf("%s\n", FileName);
system("pause");


fHandle=FindFirstFile(FileName, &wfd);

if (fHandle!=INVALID_HANDLE_VALUE)
{
do
{
printf("%s\n", wfd.cFileName);
} while (FindNextFile(fHandle, &wfd));

FindClose(fHandle);

}
free(FileName);
return 0;
}


int main(int argc, char *argv[])
{

ListFiles("C:\\");

system("PAUSE");
return 0;
}
-----------------------------------------------


Дата: Апр 7, 2003 21:00:19

Ну, все, проблема решена! Оказывается это была моя ошибка. Прошу прощения за беспокойство! Просто я в проверке вместо '&' написал '=='. Наверное, очень устал в тот день :(((


Дата: Апр 8, 2003 04:48:46

alеx
очень устал в тот день
Настолько, что, показывая рабочий код, надеетесь, что кто-то найдет в нем ошибку?

Что я делаю неправильно? Кроме выбора языка
С языком все в порядке. Я предпочитаю Си.


Дата: Апр 8, 2003 16:26:23

P2M
Настолько, что, показывая рабочий код, надеетесь, что кто-то найдет в нем ошибку?

Да я только недавно начал осваивать Си (несколько дней). Но уже знаю, к чему может привести неправильно поставленный знак ';'. Да и в форум обратился потому что нигде ничего не мог найти. А этот код заработал после того как я скопировал нерабочий, на мой взгляд, кусок и вставил его в новый проект :(((

С языком все в порядке. Я предпочитаю Си.
Да знаю я. Шутка была :)


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.068