ЗАДАНИЕ. Написать программу, производящую сканирование диска, определение его размера, объема свободного пространства
Написать программу, производящую сканирование диска, определение его размера, объема свободного пространства, вывод списка файлов по заданному шаблону, поиск указанного файла и его переименование. Program Find_Ren_File; uses Dos, Crt; var Fil: File of byte; FileInfo: SearchRec; H, M, S, Hund: word; {переменные ч, мин, с, 0.01 с для GetTime} Ftime: longint; {упакованные время и дата в GetFTime} T: DateTime; {распакованные дата и время в переменной типа DateTime} Dir_s, N, E, Name, New_Name: string; I, P: integer; function LeadingZero (W: Word): string; {преобразовать время в строку var S: string; begin Str (W: 0, s); If Length (S)=1 then S: =’0’+S; LeadingZero: =S; end; procedure Nam_Ext_File; {отделить имя и расширение файла} begin P: =Pos (‘.’, FileInfo, Name); {определить позицию символа «.» в имени файла} if P> 1 then begin N: =Copy (FileInfo. Name, 1, P-1); E: =Copy (FileInfo. Name, P+1, 3); end else {расширение отсутствует} begin N: =FileInfo. Name; E: =’ ‘; end; end; procedure Rename_File; {переименовать файл} begin write (‘Введите новое имя файла: ’); readln (New_Name); rename (Fil, New_Name); writeln (‘Файл’, Name, ‘переименован в’, New_Name, ‘, нажмите Enter…’); readln; end; begin {основная программа} ClrScr; GetTime (H, M, S, Hund); {прочитать системное время} Writeln (‘Текущее время: ‘, LeadingZero (H), ‘: ’, LeadingZero (M), ‘: ’, LeadingZero (S)); GetDir (0, Dir_s); {0=читать каталог текущего диска} Writeln (DiskSize (0) div 1024, ‘Кбайт на диске’); Writeln (DiscFree(0) div 1024, ‘Кбайт свободно’); Writeln; I: =0; {пока не найдено ни одного файла} FindFirst (‘*.pas’, Archive, FileInfo); Writeln (‘Имя файла Размер (байт) Дата Время создания’); Writeln; while DosError=0 do {пока поиск файла завершается успешно} begin I: =I+1; {найден еще один файл} Assign (Fil, FileInfo. Name); Nam_Ext_File; {отделить имя файла от расширения} Write (N, ‘ ‘: 9 – Length (N), E, ‘ ‘: 4 – Length (E)); Write (‘ ‘, FileInfo. Size: 8); GetFTime (Fil, Ftime); {возвратить дату и время последнего изменения файла} UnpackTime (FileInfo. Time, T); {преобразует 4-байтовые, упакованные в Longint время и дату в распакованную запись типа DateTime} Write (‘ ‘, T. Day: 2, ‘-‘, T. Month: 2, ‘-‘, T. Year: 4); Writeln (‘ ‘, T. Hour: 2, ‘: ’, T. Min: 2, ‘: ’, T. Sec: 2); FindNext (FileInfo); end; writeln; writeln (‘В текущем каталоге найдено’, I, ‘архивных файлов с расширением.PAS’); repeat write (‘Введите имя файла для переименования > ’); readln (Name); {искать файл в каталогах, описанных в переменной окружения PATH} if Fsearch (Name, GetEnv (‘PATH’))=’ ‘ then writeln (‘на диске нет файла’, Name); until Fsearch (Name, GetEnv (‘PATH’)) < < @062> ‘ ‘; {найден файл Name} Assign (Fil, Name); Rename_File; {вызов процедуры переименования файла} end.
|