URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 5583
[ Назад ]

Исходное сообщение
"Какая функция позволит узнать список подкаталогов?"

Отправлено zkrvova , 19-Июл-06 18:07 
Нужна функция которая позволит узнать список подкаталогов.

Заранее благодарен.


Содержание

Сообщения в этом обсуждении
"Какая функция позволит узнать список подкаталогов?"
Отправлено michelnok , 19-Июл-06 22:24 
>Нужна функция которая позволит узнать список подкаталогов.

man 3 opendir


"Какая функция позволит узнать список подкаталогов?"
Отправлено zkrvova , 20-Июл-06 16:12 
>>Нужна функция которая позволит узнать список подкаталогов.
>
>man 3 opendir


Да есть там функция readdir - то что надо но только она выдаёт всё что есть в каталоге, а можно както отсортировать только подкаталоги?


"Какая функция позволит узнать список подкаталогов?"
Отправлено zkrvova , 20-Июл-06 16:52 
>>>Нужна функция которая позволит узнать список подкаталогов.
>>
>>man 3 opendir
>
>
>Да есть там функция readdir - то что надо но только она
>выдаёт всё что есть в каталоге, а можно както отсортировать только
>подкаталоги?


Нашел - функция stat может распознать каталог или нет!

Спасибо!


"Какая функция позволит узнать список подкаталогов?"
Отправлено michelnok , 20-Июл-06 21:50 
>Да есть там функция readdir - то что надо но только она
>выдаёт всё что есть в каталоге, а можно както отсортировать только
>подкаталоги?

Ты получаешь указатель на struct dirent
Там есть поле d_type, по которому и можешь фильтровать.


"Какая функция позволит узнать список подкаталогов?"
Отправлено zkrvova , 21-Июл-06 10:06 
>>Да есть там функция readdir - то что надо но только она
>>выдаёт всё что есть в каталоге, а можно както отсортировать только
>>подкаталоги?
>
>Ты получаешь указатель на struct dirent
>Там есть поле d_type, по которому и можешь фильтровать.


Спасибо, я как писал уже нашёл.

Спасибо.


"Какая функция позволит узнать список подкаталогов?"
Отправлено Niam , 19-Июл-06 22:35 
>Нужна функция которая позволит узнать список подкаталогов.
>
>Заранее благодарен.


хм, стандартной нет, только через readdir(рекурсивно), хотя есть gnu"шная, nftw - вызывает callback ф-цию при проходе по дереву на каждом листке.


"Какая функция позволит узнать список подкаталогов?"
Отправлено zkrvova , 20-Июл-06 16:13 
>>Нужна функция которая позволит узнать список подкаталогов.
>>
>>Заранее благодарен.
>
>
>хм, стандартной нет, только через readdir(рекурсивно), хотя есть gnu"шная, nftw - вызывает
>callback ф-цию при проходе по дереву на каждом листке.


Вижу что для этой функции выдаётся и флаг(каталог это или файл), попробую.

Спасибо.


"Какая функция позволит узнать список подкаталогов?"
Отправлено f00l , 21-Июл-06 09:22 
>Нужна функция которая позволит узнать список подкаталогов.
>
>Заранее благодарен.


Функция scandir:
  
ну где то вот так.


#include <stdio.h>
#include <dirent.h>
#include <sys/stat.h>

static int dir(const struct dirent * eps)
{
if(eps->d_type == 4 )
   return 1;
return 0;
}

int main (int argc,char *argv[])
{
struct dirent ** eps;
int n;
int i;

n = scandir("./",&eps,dir,alphasort);

if(n > 0){
   for(i = 0;i < n;i++){
     printf("\n name >> %s",eps[i]->d_name);
   }
}
else{
   printf("not dir");
}
return 0;
}


"Какая функция позволит узнать список подкаталогов?"
Отправлено zkrvova , 21-Июл-06 10:06 
Даже пример дали, спасибо!