Заносит в массив информацию о файлах и возвращает количество файлов.
Синтаксис:
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