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

Ваш аккаунт

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

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

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

проход по директориям

5.7K
12 сентября 2006 года
N-John
52 / / 05.07.2006
народ подскажите плиз, как можно осуществить проход по директориям?
задача примерно такая: получаем список файлов корневой директории если есть папки, то получить список папок и пролезть по очереди в каждую.
и есть ли эквиваленты в C++ функций PHP is_dir() is_file()?
2
13 сентября 2006 года
squirL
5.6K / / 13.08.2003
http://www.opennet.ru/docs/RUS/bogatyrev/ex_13.html
примерчик...
5.7K
19 сентября 2006 года
N-John
52 / / 05.07.2006
компилятор ругается на все функции инклуда dir.h
говорит
source/freetest.c: In function `int main()':
source/freetest.c:14: implicit declaration of function `int mkdir(...)'
не знаете в чем проблема?
2
19 сентября 2006 года
squirL
5.6K / / 13.08.2003
хы хы... конечно знаю :) потому что вы скопировали весь пример, поленившись изучить. а там написано ясно - пример под MS DOS. и в Linux такого заголовочного файла нету. изучите пример и ищите аналоги.
5.7K
19 сентября 2006 года
N-John
52 / / 05.07.2006
неееееее, такой заголовок лежит в папке с инклудами, и пример я не копировал, а впихивал чисто свой код. я посмотрел справочни по функциям и в нем говорилось, что существует инклуд direct.h, но е как раз я не нашел.
2
19 сентября 2006 года
squirL
5.6K / / 13.08.2003
каюсь, я про dos.h не глядя подумал. dir.h есть. по умолчанию - он должен включать в себя dirent.h. только implicit declaration - это вроде warning, а не error. запости сюда свой код в том виде, в котором собираешь
5.7K
24 сентября 2006 года
N-John
52 / / 05.07.2006
Вот тестовый пример, который я пытался откомпилить
 
Код:
#include "/usr/include/sys/dir.h"
#include <iostream.h>

int main()
{
    char pathD[255];
    cin >> pathD;
    chdir(pathD);
    return 0;
}
361
25 сентября 2006 года
Odissey_
661 / / 19.09.2006
Проход по каталогам. Unix API.

Цитата:
#include <string.h>
...
#include <sys/dir.h>
...
direct * dp, * dp_current;
DIR * dir_fdesc, * dir_current;
dir_fdesc = opendir(PROC_PATH);
if(dir_fdesc != NULL)
{
while((dp = readdir(dir_fdesc)) != NULL)
{
memset(bufname1,0,sizeof(char)*1024);
strcpy(bufname1,dp->d_name);
sprintf(dir_path,"%s%s/",PROC_PATH,bufname1);
dir_current = opendir(dir_path);
if(dir_current != NULL)
{
while((dp_current = readdir(dir_current))!= NULL)
{
sprintf(file_path,"%s%s",dir_path,STAT_PROC_FILE);
};
};
};
};
closedir(dir_current);
};
};
};
closedir(dir_fdesc);



Кусок кода. Вообщем то ничего не делает, но открывает директорию и читает поддиректории. Вообщем то я его порезал. Там ранее искался pid процесса, но суть понять можно.
Да, PROC_PATH - это путь к первому каталогу.

А, точно. Как различить файл и каталог =). Если opendir() дает не Null - это каталог, иначе нет (хотя надо посмотреть коды возврата точнее).

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