#include "/usr/include/sys/dir.h"
#include <iostream.h>
int main()
{
char pathD[255];
cin >> pathD;
chdir(pathD);
return 0;
}
проход по директориям
задача примерно такая: получаем список файлов корневой директории если есть папки, то получить список папок и пролезть по очереди в каждую.
и есть ли эквиваленты в C++ функций PHP is_dir() is_file()?
говорит
source/freetest.c: In function `int main()':
source/freetest.c:14: implicit declaration of function `int mkdir(...)'
не знаете в чем проблема?
хы хы... конечно знаю :) потому что вы скопировали весь пример, поленившись изучить. а там написано ясно - пример под MS DOS. и в Linux такого заголовочного файла нету. изучите пример и ищите аналоги.
неееееее, такой заголовок лежит в папке с инклудами, и пример я не копировал, а впихивал чисто свой код. я посмотрел справочни по функциям и в нем говорилось, что существует инклуд direct.h, но е как раз я не нашел.
каюсь, я про dos.h не глядя подумал. dir.h есть. по умолчанию - он должен включать в себя dirent.h. только implicit declaration - это вроде warning, а не error. запости сюда свой код в том виде, в котором собираешь
Код:
Цитата:
#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);
...
#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 - это каталог, иначе нет (хотя надо посмотреть коды возврата точнее).