Дата и время создания файла

Самый простой способ знакомства с возрастом файла заключается в использовании функции:

 

function FileAge(const FileName: string): Integer;

 

Как видите, для этого достаточно передать путь и имя файла в параметр FileName. Еще один метод, выполняющий аналогичную задачу:

 

function FileGetDate (Handle: Integer): Integer;

 

Однако здесь вместо имени требуется указатель на файл. Другими словами, последний должен быть открыт методом FileOpen() или создан методом FileCreate(). Оба метода возвращают дату не в привычном для нас формате TDateTime, а в виде структуры даты-времени, принятой в Windows. Поэтому для приведения результата к понятному для языка Pascal виду применяется метод:

 

function FileDateToDateTime(FileDate: Integer): TDateTime;

 

Существует функция, решающая и обратную задачу:

 

function DateTimeToFileDate(DateTime: TDateTime): Integer;

varFileName : string;

Age : INTEGER;

Begin

FileName:='C:\Autoexec.bat';

Age:=FileAge(FileName);

WriteLn(Age);

WriteLn(DateTimeToStr(FileDateToDateTime(Age)));

ReadLn;

End.

Для того чтобы назначить файлу новое время и дату, понадобится метод:

 

function FileSetDate(Handle: Integer; Age: Integer): Integer;

var FileName : string;

F,Age : INTEGER;

. . .

Age:=DateTimeToFileDate(Now);

F:=FileOpen(FileName, fmOpenReadWrite);

FileSetDate(F, Age);

FileClose(F);

 

Атрибуты файла

В языке Pascal объявлено два метода для работы с атрибутами файла. За чтение и установку атрибутов отвечают соответственно методы:

 

function FileGetAttr(const FileName: string): Integer;

functionFileSetAttr(const FileName: string; Attr: Integer): Integer;

 

В обеих функциях FileName – имя файла. Во втором методе назначение атрибутов выполняется с помощью параметра Attr. Существующие типы атрибутов представлены в табл. 4.5.

 

Таблица 4.5. Атрибуты файла

Атрибут Значение Описание
faReadOnly faHidden faSysFile faVolumeID faDirectory faArchive faAnyFile $00000001 $00000002 $00000004 $00000008 $00000010 $00000020 $0000003F Только для чтения Скрытый Системный Диск Каталог Архив Любой

Контроль атрибутов файла очень полезен при проведении опасных операций с файлами. Приведем листинг программы, демонстрирующей простейший способ защиты системных и скрытых файлов от удаления.

 

function DeleteMyFile(FileName : string) : Boolean;

var Attr : INTEGER;

Begin

Attr:=FileGetAttr(FileName);

if (Attr and faHidden = 0) or (Attr and faSysFile = 0) then

Begin

DeleteFile(FileName);

Result:=True;

end else Result:=False;

ReadLn;

End.

 

Наиболее частая операция, связанная с установкой (удалением) атрибута «только для чтения», унифицирована и представлена в лице метода:

 

function FileSetReadOnly(const FileName: string; ReadOnly: Boolean): Boolean;

 

Здесь FileName – имя файла, ReadOnly – состояние атрибута.

 

Размер файла

Зачастую применение входящего в арсенал Delphi метода FileSize() недостаточно удобно, т. к. его единицей измерения является не байт, а запись. Для выяснения размера файла в байтах можно использовать метод из состава Windows API:

 

FunctionGetFileSizeEx(hFile : HANDLE; pFileSize : Pointer) : Boolean;

 

Функция снабжена двумя аргументами: hFile – дескриптор файла и hFileSize – указатель на переменную типа INT64, в которую будет записан полученный размер.

 

var FileName : string;

F : Integer;

Size : INT64;

Begin

FileName:='C:\autoexec.bat';

F:=FileOpen(FileName,fmOpenRead);

Size:=GetFileSize(F, @Size);

WriteLn(Size);

FileClose(F);

ReadLn;

End.








Дата добавления: 2016-03-15; просмотров: 880;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.006 сек.