Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Функция перехода между файлами в каталоге на С 
V
    Опции темы
Sergio
  Дата 20.10.2008, 00:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 843
Регистрация: 28.7.2006
Где: Solar System-> Earth

Репутация: нет
Всего: 1



Всем привет.  
Нужно в цикле проверить каждый файл/папку в определённом каталоге и сделать какие-то действия. 
Как перейти на следующий файл/папку?
Спасибо.

Это сообщение отредактировал(а) Sergio - 20.10.2008, 00:10
PM MAIL ICQ   Вверх
Dmi3ev
Дата 20.10.2008, 00:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1698
Регистрация: 28.11.2007

Репутация: 13
Всего: 41



это лучше всего делать с помощью рекурсии, а функция перехода между каталогами chdir


--------------------

PM MAIL   Вверх
Sergio
Дата 20.10.2008, 00:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 843
Регистрация: 28.7.2006
Где: Solar System-> Earth

Репутация: нет
Всего: 1



Dmi3ev, мне не совсем между каталогами переходить. 
Например есть каталог C:\Temp\ Нужно перебрать все файлы/папки. Что-то типа итератора. 
Чтобы функция возращала путь к следуещему файлу/папке
PM MAIL ICQ   Вверх
eyeofhell
Дата 20.10.2008, 08:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Адепт
*


Профиль
Группа: Участник
Сообщений: 87
Регистрация: 16.10.2008
Где: Россия, Москва

Репутация: 1
Всего: 1



PM MAIL ICQ   Вверх
bsa
Дата 20.10.2008, 11:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



Sergio, все зависит от ОС, в которой работаешь. Для Windows тебе нужно использовать FindFirst/FindNext/FindClose. Для *nix - readdir.
PM   Вверх
Sergio
Дата 21.10.2008, 13:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 843
Регистрация: 28.7.2006
Где: Solar System-> Earth

Репутация: нет
Всего: 1



Вот что написал. Вывод всех файлов/директорий в консоль:
Код

    WIN32_FIND_DATAA ipFindData;
    HANDLE hFile = FindFirstFileA("C:\\test\\", &ipFindData);

    if (hFile == INVALID_HANDLE_VALUE)
    {
        printf("Invalid handle\n");
        return 0;
    }
    else
    {
        printf ("First file name is %s.\n", ipFindData.cFileName);

        while (!FindNextFileA(hFile, &ipFindData))
        {
            printf("File Name: C:\\test\ %s\n", ipFindData.cAlternateFileName);
        }
    }

Не выводит как должно. Почему?
PM MAIL ICQ   Вверх
eyeofhell
Дата 21.10.2008, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Адепт
*


Профиль
Группа: Участник
Сообщений: 87
Регистрация: 16.10.2008
Где: Россия, Москва

Репутация: 1
Всего: 1



Цитата

Не выводит как должно. Почему? 


Потому что есть ошибки. Нужно писать:

Код

FindFirstFileA( "C:\\test\\*.*"
while( FindNextFileA(

PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0476 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.