исключаются файлы, имеющие хотя бы
из группы не
исключаются файлы, имеющие хотя бы один атрибут, заданный маской.
Имеется ряд дополнительных аспектов использования значения .F.
параметра <lExact>, которые следует рассмотреть подробнее. Во-первых,
файлы с атрибутами READ ONLY (1), ARCHIVE (32) и вообще без атрибутов
(0) включаются в группу при любом задании маски, за исключением
задания величины 8 (VOLUME). Во-вторых, файлы с атрибутами HIDDEN (2),
SYSTEM (4), VOLUME (8) и DIR (16) включаются в группу, если в маске
установлен соответствующий бит. Другими словами, в маске имеет смысл
задавать только атрибуты SYSTEM, HIDDEN, VOLUME или DIR. Таким
образом, при задании маски 16 (DIR) в группу будут включены как файлы
без атрибутов, так и файлы с атрибутами ARCHIVE и READ ONLY.
Внутренний буфер данных
При каждом вызове функции данные о размере, атрибутах, времени и дате
создания выбранного файла сохраняются во внутреннем буфере. Для
доступа к этой информации функции FILETIME(), FILEDATE() и т.д.
следует вызывать без параметров, чтобы не производилась замена данных
во внутреннем буфере.
Примечания
. Поставляемый в составе CT II файл TOOLDEMO.PRG содержит в качестве
примера функцию SCANFILES(), позволяющую подготовить эффективную
программу для работы с директориями.
Примеры
. Вывод даты и размера файлов, имеющих расширение .TXT:
cFile := FILESEEK("C:\TEXT\*.TXT")
DO WHILE .NOT. EMPTY(cFile)
? FILESIZE() // Размер файла из буфера
? FILEDATE() // Дата файла из буфера
cFile := FILESEEK() // Выбор следующего файла
ENDDO
. Вывод списка файлов корневой директории с атрибутами READ ONLY,
HIDDEN, SYSTEM и ARCHIVE (1 + 2 + 4 + 32 = 39), хотя достаточно
задание 6 (2 + 4):
cFile := FILESEEK("C:\*.*", 39)