Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Странное поведение FindFirstFile(). Подскажите

1.6K
10 ноября 2004 года
GDragon
67 / / 11.10.2002
Всем привет.
Стоит тривиальная задача - получить содержимое папки. Использую FindFirstFile():
...
FindFirstFile(lpszPath, &FindFileData);
...
в результате в FindFileData.cFileName неизменно получаю "." Что за фигня, подскажите пожалуйста!
Ковыряюсь уже пол-дня, отличный от точки результат получается только при lpszPath="C:\\*". HELP!!!

P.S.: NTFS, WinXP.
433
10 ноября 2004 года
AlexII
86 / / 13.10.2003
Цитата:
Originally posted by GDragon
Всем привет.
Стоит тривиальная задача - получить содержимое папки. Использую FindFirstFile():
...
FindFirstFile(lpszPath, &FindFileData);
...
в результате в FindFileData.cFileName неизменно получаю "." Что за фигня, подскажите пожалуйста!
Ковыряюсь уже пол-дня, отличный от точки результат получается только при lpszPath="C:\\*". HELP!!!

P.S.: NTFS, WinXP.



FindFirstFile - вызывается только один раз, а дальше в цикле надо вызывать

BOOL FindNextFile(
HANDLE hFindFile,
LPWIN32_FIND_DATA lpFindFileData
);

1.6K
10 ноября 2004 года
GDragon
67 / / 11.10.2002
Цитата:
Originally posted by AlexII


FindFirstFile - вызывается только один раз, а дальше в цикле надо вызывать

BOOL FindNextFile(
HANDLE hFindFile,
LPWIN32_FIND_DATA lpFindFileData
);



Это понятно, но первого-то элемента имя я должен получить. К стати, хендл получается корректный, но когда я попробовал сразу после FindFirstFile получить FindNextFile, то получил в качестве имени файла "..". Отпад!
А есть ли другой способ получить содержимое папки, кроме как этими функциями?

433
10 ноября 2004 года
AlexII
86 / / 13.10.2003
Цитата:
Originally posted by GDragon


Это понятно, но первого-то элемента имя я должен получить. К стати, хендл получается корректный, но когда я попробовал сразу после FindFirstFile получить FindNextFile, то получил в качестве имени файла "..". Отпад!
А есть ли другой способ получить содержимое папки, кроме как этими функциями?



не надо удивляться, всё правильно!!!!!!!!!

. обозначает текущую директорию
.. обозначает директорию на один уровень выше


попробуй в коммандной строке написать:

cd .. или cd .

и обрати внимание как изменяется текущая директория.


А в программе просто надо поставить проверки на . и .. и усё!

1.6K
10 ноября 2004 года
GDragon
67 / / 11.10.2002
Цитата:
Originally posted by AlexII


не надо удивляться, всё правильно!!!!!!!!!

. обозначает текущую директорию
.. обозначает директорию на один уровень выше


попробуй в коммандной строке написать:

cd .. или cd .

и обрати внимание как изменяется текущая директория.


А в программе просто надо поставить проверки на . и .. и усё!



О сколько нам открытий чудных готовит просвещенья дух... На 12 часу мозгового штурма я догадался засунуть FindNextFile в цикл и узрел искомое содержимое. Алилуйя!
Спасибо, AlexII и всем, кто заходил поинтересоваться :)

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог