g1xx Опубликовано 5 декабря, 2006 Жалоба Поделиться Опубликовано 5 декабря, 2006 Подскажите пожалуйста, как это возможно? Я пытался так: Записать в файл имена каталогов получается в таком виде: dir1/ dir2/ ... Далее надо же как-то проделать ls -l с каждым каталогом. Т.е. у меня не получается запихнуть имя каталога в переменную и проделать с этой переменной ls. Потом, я думаю, запихнуть результат каждого ls -l в файл и с помощью wc определить максимальное кол-во строк(т.е. кол-во файлов в каталоге). Может есть способ легче, не прибегая к командам shell? Помогите пожалуйста, весь измучался от своего тупизма. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
AccessD Опубликовано 5 декабря, 2006 Жалоба Поделиться Опубликовано 5 декабря, 2006 почитайте man readdir(3) и всё получится. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
g1xx Опубликовано 6 декабря, 2006 Автор Жалоба Поделиться Опубликовано 6 декабря, 2006 Спасибо вам огромное, все получилось. Вот лист, кому интересно: #include <stdio.h> #include <signal.h> #include <dirent.h> #include <sys/types.h> #include <iostream.h> void main() { int a=0,b=0; struct stat *sb; struct dirent *dp; DIR *d; DIR *s; d=opendir("Указываем здесь нужную директорию"); while((dp=readdir(d))!=NULL) { if (dp->d_name[0]=='.') continue; if (dp->d_type == DT_DIR) { cout << "Dir:" << dp->d_name << endl; s=opendir(dp->d_name); while((dp=readdir(s))!=NULL) { if (dp->d_name[0]=='.') continue; b++; } cout << "b=" << b << endl; if (b>a) { a=b; b=0; } } } cout << "Max=" << a << endl; } Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.