Распечатать страницу

Команды для файлов и директорий в VFP

« Назад

Команда

SET DEFAULT TO [cPath]

задает диск и директорию по умолчанию.

Параметр:

cPath – задает одно из следующих:

- имя диска, например D или D: или D:\;

- имя диска с именем директории, например D:\SomeDir\ или D:\SomeDir;

- имя дочерней директории, например:

set default to d:

set default to \i386

set default to Lang

? Sys(5) + Sys(2003)          && Напечатает: D:\I386\LANG

- символ .. или \, например:

set default to d:\i386\Lang

set default to ..

? Sys(5) + Sys(2003)          && Напечатает: D:\I386

set default to d:\i386\Lang

set default to \

? Sys(5) + Sys(2003)          && Напечатает: D:\

Из примеров видно, что кавычки при задании cPath могут быть опущены.

Первоначально VFP ищет файлы в директории, заданной SET DEFAULT, называемой директорией по умолчанию. После запуска директорией по умолчанию является директория, в которой VFP запускается, или указанная в файле конфигурации, или стартовой программе (ее имя хранит системная переменная _STARTUP). Если файл не найден, то поиск продолжается в папках, заданных командой SET PATH.

Созданный файл, если при его записи не указана директория, помещается в директорию по умолчанию.

Команда SET DEFAULT не поддерживается DLL-серверами с одной или несколькими нитями: SET DEFAULT изменяем директорию по умолчанию для всего процесса и всех определенных в нем нитей. При необходимости в DLL-серверах следует использовать SET PATH вместо CD и CHDIR.

Замечания:

1. Директория по умолчанию возвращается выражением

Sys(5) + Sys(2003)

или

Sys(5) + CurDir( )

2. Для изменения директории по умолчанию употребляется также команда

CD | CHDIR cPath

Команда

SET PATH TO [Path] [ADDITIVE]

задает пути для поиска файла.

Опции и параметр:

TO [Path] – задает один или несколько разделенных запятыми путей поиска файла. Путь не должен содержать восклицательного знака.

ADDITIVE – добавляет дополнительные пути к уже существующим.

При использовании опции ADDITIVE параметр Path должен быть либо строкой (не литералом), либо символьным выражением, например:

set path to d:\                      && Можно использовать литерал d:\

set path to "d:\HomeLibrary" additive      && Употребляем строку "d:\HomeLibrary"

? Set("PATH")                    && Напечатает: d:\; d:\HomeLibrary

Можно также применить и макроподстановку, например:

xx = ["Folder2"]

set path to &xx additive

&& или:

xx = "Folder2"

set path to '&xx' additive

Выполнение SET PATH TO без параметра Path отменяет все установки команды.

Команда

DIR | DIRECTORY [ON Drive] [[LIKE] [Path] [FileSkeleton]]
                   [TO PRINTER [PROMPT] | TO FILE FileName]

выводит информацию о файлах в директории.

Опции и параметры:

ON Drive – задает имя диска, на котором расположена директория.

[LIKE] [Path] [FileSkeleton] – задает путь Path к директории, содержащей отображаемые файлы. Если опция ON опущена, путь может включать имя диска. Если параметр Path опущен, то будут выводиться сведения о файлах в текущей директории.

Маска FileSkeleton может включать символы * и ?. Так, команда

dir *.prg

отобразит все файлы текущей директории, имеющие расширением PRG. А команда

dir *.

выведет информацию о файлах без расширения.

TO PRINTER [PROMPT] – направляет вывод данных на принтер. Если задана опция PROMPT, то откроется диалог настройки принтера.

TO FILE FileName – направляет собранную информацию в файл FileName. Если SET SAFETY установлен в ON и файл FileName существует, то он будет перезаписан только после разрешения пользователя.

Если DIR употребляется без FileSkeleton, то будут выведены следующие сведения о таблицах, имеющихся в директории:

  • имена таблиц;

число записей;

дата последнего обновления;

размер таблиц в байтах;

флаг принадлежности к базе данных;

число байт, занимаемых таблицами на диске, не считая размер FPT-файлов;

число отображаемых таблиц;

объем свободной памяти на диске.

Если не заданы параметры Drive и Path, то берется директории по умолчанию.

Пример. Выводятся сведения о таблицах директории d:\HomeLibrary.

set default to d:\HomeLibrary

dir to file d:\a.txt

Возможный результат:

Database Table/DBF files

# Records

Last Update

Size

AUTHORS.DBF

12

12/25/04

1228

BOOKS.DBF

14

12/25/04

1302

BOOKSAUTHORS.DBF

14

12/25/04

487

BOOKSCONTENT.DBF

11

12/23/04

1041

HOMELIBRARY_REF.DBF

2

11/23/04

1193

TEST.DBF

11

12/25/04

1802

WORKTYPE.DBF

8

12/25/04

560

7613 bytes in 7 files.

55491481600 bytes remaining on drive.

Команда

CD | CHDIR cPath

изменяет директорию по умолчанию. Оказывает то же действие, что и команда SET DEFAULT.

Пример:

cd d:

cd \i386

cd lang

? Sys(5) + Sys(2003)          && Напечатает: D:\I386\LANG

Замечание. Если указан не существующий путь, то VFP генерирует ошибку.

Команда

MD | MKDIR cPath

создает новую директорию (папку) на диске.

Параметр:

cPath – задает директорию или путь с именем диска. Если cPath – это имя директории, то VFP создаст поддиректорию в директории по умолчанию.

Если директория уже существует, то VFP сгенерирует ошибку.

Команда

RD | RMDIR cPath

удаляет директорию (папку) с диска.

Параметр:

cPath – задает директорию или путь с именем диска. Если в директории имеются файлы, то при попытке ее удаления VFP сгенерирует ошибку. Нельзя также удалять директорию, если она является текущей (директорией по умолчанию).

Команда

RENAME FileName1 TO FileName2

изменяет имя файла FileName1 на имя FileName2.

Если расширение не включено, то принимается расширение по умолчанию – DBF.

Если файл не имеет расширения, то после имени файла нужно указать точку (в противном случае будет взято расширение по умолчанию).

Для изменения имени таблицы базы данных используется не RENAME, а RENAME TABLE.

Директории, указанные для FileName1 и FileName2, могут быть разными.

Имена FileName1 и FileName2 могут содержать символы * и ?, например команда

rename *.prg to *.bak

изменяет в именах всех файлов в директории по умолчанию расширение PRG на расширение BAK.

Команды

ERASE FileName | ? [RECYCLE]

или

DELETE FILE [FileName | ?] [RECYCLE]

удаляют файл с диска. Команда не генерирует ошибки, если указанный файл не существует. При выполнении ERASE не выполняется никаких предупреждений, даже если SET SAFETY установлен в ON.

Параметр (описании опции см. в табл. 1.6):

FileName – имя удаляемого файла. Может содержать путь и должно быть с расширением. Может включать символы * и ?, например:

&& Стираем в директории по умолчанию все файлы с расширением BAK

erase *.bak

Если имя файла содержит пробелы, то оно должно быть заключено в кавычки.

Если нужно удалить таблицу базы данных, то прежде следует выполнить для удаляемой таблицы REMOVE TABLE, чтобы удалить ссылку на таблицу в базе данных. При удалении таблицы следует помнить о сопутствующих ей FPT- и CDX-файлах.

Впрочем, удобнее для удаления таблицы базы данных использовать DROP TABLE.

Команда

COPY FILE FileName1 TO FileName2

копирует файл FileName1 в файл FileName2. Тип файла FileName1 произвольный.

Имя файла может включать путь и должно содержать расширение.

Параметры FileName1 и FileName2 могут иметь символы * и ?, например:

copy file *.prg to *.bak

При создании копии таблицы, имеющей структурный индекс и memo-поля, не следует забывать о копировании FPT- и CDX-файлов.

Команда

MODIFY FILE [FileName | ?] [NOEDIT] [NOMENU] [NOWAIT]
                   [RANGE nStartCharacter, nEndCharacter] [[WINDOW WindowName1]
                   [IN [WINDOW] WindowName2 | IN SCREEN]]
                   [AS nCodePage] [SAME] [SAVE]

открывает окно редактирования текстового файла.

Параметр (описании опций см. в табл. 1.6):

FileName – имя текстового файла. Если не задано расширение, то в качестве него берется TXT. Имя может содержать символы * и ?. Окно редактирования будет открыто для каждого удовлетворяющего маске файла. Если параметр FileName опущен, то для файла берется имя File1.

При сохранении файла создается его копия, имеющая расширение BAK. От создания копий можно отказаться, если снять флажок Make backup copy в диалоге задания свойств окна редактирования (рис. 19.1).

251.1.-Задание-свойств-окна-редактирования

Рис. 19.1. Задание свойств окна редактирования

Взамен редактора VFP в файле конфигурации можно указать иной, употребив опцию TEDIT.

Команда

CLEAR RESOURCES [FileName]

удаляет из памяти ресурс (кэшированный рисунок, шрифт, курсор, BMP- или ICO-файл), заданный именем FileName. Если команда выполнена без параметра FileName, то из памяти удаляются все перечисленные выше ресурсы.

Когда VFP отображает ресурс, то он кэшируется для оптимизации производительности. Если используется ресурс с тем же именем, например BMP-файл, что и ранее кэшированный, VFP не перезагружает ресурс. Поэтому в таком случае необходимо прежде очистить ресурс, а затем уже загрузить новый.