Extension –новое расширение имени файла FileName.

Else

Begin

FileHandle:= FileOpen ('test.txt', fmOpenWrite or fmShareDenyNone);

If FileHandle > 0 then

// операции, выполняемые, когда файл открыт

// ошибка: FileHandle содержит код ошибки открытия

Функции работы с дисками, каталогами и устройствами:

ExtactFileDrive (const FileName: string): string;

Возвращает имя диска, на котором размещен файл с именем FileName.

 

ExtractFileDir (const FileName: string): string;

Возвращает имя диска и путь к файлу, заданному строкой FileName.

 

IncludeTrailingBackSlash (const S: string): string;

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

S – строковый параметр, определяющий путь.

Пример.

Var

S: string;

Begin

S:= 'C:\Test\My';

S:=IncludeTrailingBackSlash (S); // функция возвратит 'C:\Test\My\'

End;

 

 

GetCurrentDir: string;

Возвращает имя текущей папки и полный путь к ней.

 

Пример.

Var

Dir: string;

Begin

ChDir ('C:\Test');

ChDir ('My');

Dir:= GetCurrentDir; // получим Dir - 'C:\Test\My'

End;

 

 

DirectoryExists (Name: string): boolean;

Позволяет проверить, существует ли папка с именем Name.Указанный путь может быть абсолютным или относительным.

Абсолютный путь включает в себя имя диска и имена всех родительских папок. Относительный путь начинается от текущей папки, которая считается корневой.

 

Пример.

If not DirectoryExists ('C:\Temp') then CreateDir ('C:\Temp');

 

FileExists (const FileName: string): boolean;

Позволяет проверить, существует ли файл с именем FileName.Указанный путь может быть абсолютным или относительным.

Пример.

If not FileExists ('C:\Temp\test.txt') then FileCreate ('C:\Temp\test.txt');

 

 

DiskSize (Drive: byte): Int64;

Функция возвращает размер диска, указанного строкой Drive(0 – текущий диск, 1 – диск А, …), в байтах. Если указанного диска не существует, функция возвращает значение, равное -1.

 

 

DiskFree (Drive: byte): Int64;

Функция возвращает размер свободного места на диске, указанном строкой Drive(0 – текущий диск, 1 – диск А, …), в байтах. Если указанного диска не существует, функция возвращает значение, равное -1.

 

Функции работы с атрибутами файла:

FileGetAttr (const FileName: string): integer;

Функция возвращает атрибуты файла, заданного строкой FileName.

Файлы могут иметь следующие атрибуты:

Атрибут Числовое значение Значение
faReadOnly $01 только для чтения
faHidden $02 скрытый файл
faSysFile $04 системный файл
faVolumeID $08 идентификатор
faDirectory $10 папка
faArchive $20 архивный файл
faAnyFile $3F любой файл

 

Если файл с указанным именем не найден, функция возвращает -1.

FileSetAttr (const FileName: string; Attr: integer): integer;

Функция позволяет установить Attr атрибуты файла, указанного именем FileName.

Пример.

Var

Attrs : integer;

Begin

Attrs:= FileGetAttr ('MyFile.sys');

If Attrs and faHidden <> 0 then FileSetAttr ('MyFile.sys', Attrs and faHidden);

End;

 

 

Функции работы с именем и расширением файла:

ChangeFileExt (const FileName, Extension: string): string;

Функция позволяет изменить расширение имени файла и возвращает новое полное имя файла.

 

 

ExpandFileName (const FileName: string): string;

Функция возвращает полное имя файла, указанного в строке FileName.

 

 

ExpandFilePath (const FileName: string): string;

Функция возвращает путь к имени файла, указанного в строке FileName.

ExtractFileName (const FileName: string): string;

Функция возвращает имя и расширение файла, указанного в строке FileName.

FileNameможет быть и полным именем файла.

 

ExtractFileExt (const FileName: string): string;

Функция возвращает расширение файла, указанного в строке FileName.

FileNameможет быть и полным именем файла.

 

ExtractShortPathName (const FileName: string): string;

Функция позволяет преобразовать "длинные" имена файла, указанного в строке FileNameи его пути, в "кроткие", представляемые в форме 8.3

FileNameможет быть и полным именем файла.

 

Непосредственно для поиска файлов используются функции FindFirst и FindNext.

Функция

FindFirst (const Path: string; Attr: Integer; var F: TSearchRec): Integer;

находит первый файл, заданный полным маршрутом Path и параметрами Attr. Если заданный файл найден, функция возвращает 0, иначе — код ошибки Windows. Параметры найденного файла возвращаются в записи F типа TSearchRec.

 

Функция

FindNext (var F: TSearchRec): Integer;

применяется для повторного поиска следующего файла, удовлетворяющего критерию поиска. При этом используются те параметры поиска, которые заданы последним вызовом функции FindFirst. В случае удачного поиска возвращается 0.

 

Для освобождения ресурсов, выделенных для выполнения поиска, применяется процедура:

FindClose (var F: TSearchRec);

 

type

TSearchRec = record

Time: Integer;

Size: Integer;

Attr: Integer;

Name: TFileName;

ExcludeAttr: Integer;

FindHandle: THandle;

FindData: TWin32FindData;

end;

Рассмотрим фрагмент исходного кода, как пример организации поиска файлов, в котором маршрут поиска файлов задается в компоненте TEdit, а список найденных файлов передается в компонент TListBox.

 

procedure TForml.ButtonClick(Sender: TObject);