Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Кетков.doc
Скачиваний:
17
Добавлен:
27.09.2019
Размер:
2.22 Mб
Скачать

11.5.7. Закрытие файла

Для закрытия файла используется функция FileClose:

FileClose(fHandle);

11.5.8. Расчленение полной спецификации файла

Описываемые ниже функции позволяют выделить из полной спецификации файла имя диска, имя каталога, имя файла, расширение файла и путь к файлу. Все они возвращают значение строки типа AnsiString:

s=ExtractFileDrive(FileName); //имя диска

s=ExtractFileDir(FileName); //имя каталога

s=ExtractFileName(FileName); //имя файла

s=ExtractFileExt(FileName); //расширение имени файла

s=ExtractFilePath(FileName); //путь к файлу

Аналогичные операции под управлением MS-DOS выполнялись единственной функцией fnsplit, которая из полной спецификации файла (первый аргумент функции) выделяла все составляющие компоненты:

fnsplit(const char *path,char *drive,char *dir,char *name,char *ext);

11.5.9. Удаление файлов и пустых каталогов

Функции удаления возвращают логическое значение true, если удаление состоялось, и false в случае отказа от операции (например, нельзя удалять не пустые каталоги, файлы с атрибутом Read-Only или несуществующие файлы).

bv = DeleteFile(FileName);

bv = RemoveDir(DirName);

Под управлением MS-DOS для удаления файла можно было воспользоваться функцией unlink:

k=unlink(const char *filename); //k=0, если файл удален

11.5.10. Создание каталога

Новый каталог создается с помощью функции CreateDir:

bv = CreateDir(DirName);

Если каталог создан, то возвращаемое значение равно true.

11.5.11. Переименование файла

Для замены имени файла используется функция RenameFile:

bv = FileRename(OldName,NewName);

Если переименование состоялось, то возвращаемое значение равно true.

11.5.12. Изменение расширения

Новое расширение (Extension) заменяет прежнее расширение в имени файла, если обратиться к функции ChangeExt:

as = ChangeFileExt(FileName, Extension);

При этом прежний файл и его содержимое сохраняется со своим старым именем. Создается новое имя файла (as), имеющее новое расширение.

Точно такой же функции в системе MS-DOS нет, но там можно было бы разложить спецификацию файла на составляющие (функция fnsplit) и заново собрать компоненты, подменив расширение файла (функция fnmerge).

11.5.13. Опрос атрибутов файла

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

int k = FileGetAttr(FileName);

В таблице 11.2 приведены значения отдельных флажков.

Таблица 11.2

Флажок

Значение

Пояснение

faReadOnly

0x01

признак "Только для чтения"

faHidden

0x02

скрытый файл

faSysFile

0x04

системный файл

faVolumeId

0x08

признак "Идентификатор тома"

faDirectory

0x10

признак "Каталог"

faArchive

0x20

архивируемый файл

faAnyFile

0x3F

суммарный набор признаков

Для проверки тог или иного признака можно воспользоваться указанными константами:

if(k & faHidden)... //если файл скрытый

11.5.14. Установка атрибутов файла

Для установки новых атрибутов используется функция FileSetAttr:

k = FileSetAttr(FileName,Attr);

Второй аргумент задается как логическая сумма флажков, приведенных в табл. 11.2:

Attr = faReadOnly | faSysFile;