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);