[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: