Функция ADIR( )

Заносит в массив информацию о файлах и возвращает количество файлов.

Синтаксис:

ADIR(ArrayName [, cFileSkeleton [, cAttribute [, cCreatorType]]])

Параметры:
ArrayName
Задает имя массива. Если задано имя несуществующего массива, Visual FoxPro автоматически создает такой массив. Если задано имя существующего массива, который не в состоянии вместить всю информацию, Visual FoxPro автоматически увеличивает размер массива надлежащим образом. Если в массиве больше элементов, чем необходимо, Visual FoxPro его укорачивает. Если массив уже существует и функция ADIR( ) возвращает 0, не найдя соответствующих файлов, то массив не изменяется. Если массив не существует и функция ADIR() возвращает 0, то массив не создается.
В следующей таблице описано содержимое каждого столбца массива и тип данных столбца:

Столбец	Содержимое массива	Тип данных
1	Имена файлов		Символьный
2	Размеры файлов		Числовой
3	Даты создания файлов	Дата
4	Время создания файлов	Символьный
5	Атрибуты файлов		Символьный

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

Буква	Атрибут
A	Архивный - чтение/запись (отсутствует в FoxPro для Macintosh)
H	Скрытый
R	Только для чтения
S	Системный
D	Каталог

cFileSkeleton
Задает шаблон имен файлов, определяющий некую группу файлов, информацию о которых вы намерены сохранить. Возможны, например, следующие критерии: все табличные файлы, все текстовые файлы, все файлы с именами, содержащими букву A в качестве первой буквы, и т.д. В подобных случаях в шаблоне cFileSkeleton часто используются символы подстановки * и ?. Вопросительный знак обозначает одиночный символ, а звездочка любое количество символов. В шаблоне можно использовать любое число символов подстановки в любых позициях.
В Visual FoxPro, FoxPro для Windows и FoxPro для MS-DOS можно задать диск и/или каталог, где будет вестись поиск нужных файлов. Если диск и каталог не заданы, информация о файлах текущего каталога помещается в массив.
В FoxPro для Macintosh можно задать том и/или каталог, в котором будет вестись поиск нужных файлов. Если том и каталог не заданы, FoxPro для Macintosh помещает информацию о файлах текущего каталога в массив.
cAttribute
Указывает тип файлов, о которых нужно собрать информацию: подкаталоги, скрытые или системные файлы или имя тома.
Можно задать любую комбинацию букв D, H и S. Если задана буква D, то помимо имен файлов, отвечающих шаблону cFileSkeleton, будут возвращены имена подкаталогов текущего каталога. Если задана буква H, возвращается информация о скрытых файлах, соответствующих шаблону cFileSkeleton. Если задана буква S, будет возвращена информация о системных файлах, соответствующих шаблону cFileSkeleton.
Если в качестве cFileSkeleton задана пустая строка, будут возвращены только имена подкаталогов, информация о скрытых файлах или о системных файлах.
В числе атрибутов cAttribute можно указать букву V, чтобы получить имя тома текущего диска. Если буква V задана вместе с D, H или S, в массив возвращается только имя тома. Оно сохраняется в первом элементе массива, остальная часть массива отсекается.
cCreatorType
Допустим только в FoxPro для Macintosh.
Задает файлы, созданные приложением определенного типа. Если в качестве cFileSkeleton задана пустая строка, в массив будут занесены только файлы, созданные приложениями типа cCreatorType. Если в качестве cFileSkeleton указан нетривиальный шаблон, в массив заносится информация о файлах, удовлетворяющих этому шаблону и созданных приложениями заданного в cCreatorType типа.
Список расширений имен файлов FoxPro для Macintosh и соответствующих типов приложений см. в теме Расширения имен файлов и типы файлов.

Результат
Числовой

Комментарии
Для каждого файла функция ADIR() заносит в массив его имя, размер, дату и время создания и атрибуты.

Пример:

* В следующем примере функция ADIR( ) используется для создания
* массива, содержащего информацию о базе данных. Затем на дисплей
* выводятся имена баз данных.
CLOSE DATABASES
SET PATH TO (HOME( ) + 'samples\data')

gnDbcnumber = ADIR(gaDatabase, '*.DBC')  && Create array

CLEAR
FOR nCount = 1 TO gnDbcnumber  && Loop for number of databases
	? gaDatabase(nCount,1)  && Display database names
ENDFOR
SET PATH TO HOME( )  && Set path to Visual FoxPro directory

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 15.11.2002