Re: Посоветуйте либу
On Tue, 15 May 2001, Victor Vislobokov wrote:
> From: Victor Vislobokov <victor@tvmaxima.perm.ru>
> Subject: Посоветуйте либу
> X-Mailer: Microsoft Outlook Express 5.00.2417.2000
>
> Привет всем!
>
> Очень нужна либа для работы с каталогом. Т.е. нужна функция
> такого вида:
>
> FileInfo **files = GetFiles(dirname);
> FileInfo **files = GetSomeFiles(dirname, types);
>
> где dirname - имя каталога, а types файлы определенного типа.
Что такое тип файла?
Обычно в юниксе файлы ищут по шаблонам имени.
Для этого применяется функция glob.
Что такое структура FileInfo?
typedef struct stat FileInfo?
> Впрочем обойдуть и только первой функцией.
>
> Главное чтобы функция возвращала в структуре не только список
> имен файлов, но и их тип, права доступа, временной штамп,
> размер, группу, владельца etc.
Пишештся в три строчки
сначала glob, потом на каждое имя, возвращенное glob-ом
stat
а струкрура FileInfo может быть описана, например,
как
typedef struct {
char *name
struct stat info
} FileInfo
> Еще ОЧЕНЬ хочется, чтобы все это было на чистом C, а не C++.
> Есть ли такое в готовом виде?
Не думаю. На чистом C как-то не принято такие вещи в массивы пихать.
Гораздо логичнее пройтись циклом по результату glob,
делая stat на те файлы, которые нужны и используя результаты по месту.
Самое главное, что это настолько тривиально, что написать каждый раз
заново проще, чем оформлять в библиотеку.
--
Victor Wagner vitus@ice.ru
Chief Technical Officer Office:7-(095)-748-53-88
Communiware.Net Home: 7-(095)-135-46-61
http://www.communiware.net http://www.ice.ru/~vitus
Reply to: