Лабораторная работа: Програма для сканування каталогу на наявність відповідних файлів

struct ffblk find;

Викличемо функцію findfirst(), задавши їй у якості параметрів другий аргумент із командного рядка, посилання на структуру find та файловий атрибут.

Функція findfirst() повертає нуль у випадку успіху, тобто даний оператор if перевіряє чи виконалась функція із заданими параметрами.

if( !findfirst( argv[1], &find, FA_ARCH ) ) {

Якщо findfirst() виконалася правильно, то інформація буде занесена до структури find. Викличемо функцію print_info(), яка і надрукує структуру у відповідному форматі.

printf( "\n"

"\nFile Name Attr Date Time Size"

"\n------------ ---- ---------- -------- --------" );

print_info( &find );

}

У разі помилки findfirst() поверне -1 і виконається оператор else, який надрукує відповідну інформацію про правильність заповнення командного рядка і завершить виконання програми.

else {

printf( "\nUsage: FIND filename"

"\n Wildcards ""!"" and ""*"" is OK.\n" );

getch();

exit( -1 );

}

Функція findnext() продовжує пошук файлів, який розпочала функціяfindfirst(). Findnext() також повертає нуль у випадку успішного виконання. Тому за допомогою оператора while продовжуємо пошук до тих пір доки це можливо, тобто доки findnext () не поверне -1.

while( !findnext( &find ) )

print_info( &find );

Завершимо виконання програми.

getch();

exit( 0 );

}

Функція print_info() призначена для друку структури ffblk у відповідному зрозумілому для користувача форматі. Функція нічого не повертає. У якості парметрів приймає покажчик на структуру ffblk.

void print_info( struct ffblk *pfind ) {

Оголосимо два мив мольних масиви, які будуть зберігати відповідно час та дату у форматі рядка.

char timebuf[10], datebuf[12];

Викличемо date_conv() та time_conv() для конвертації полів дати і часу із цілочисельного формату до рядкового.

К-во Просмотров: 171
Бесплатно скачать Лабораторная работа: Програма для сканування каталогу на наявність відповідних файлів