int FindFirst(str, int)
Выполняет поиск файла в указанной папке согласно заданному имени (первый параметр) и атрибуту файла (второй параметр). Если файл найден, то возвращает его дескриптор, который должен быть использован в последующих вызовах функций FindGetFileName, FindNext и FindClose. В противном случае функция вернёт значение 0.
Первый параметр (str) устанавливает маску имени папки/файла, включая символы подстановки. Например, строка вида '.\*.*' определяет все файлы в текущем каталоге.
Второй параметр (int) устанавливает атрибут файлов, которые должны быть включены в поиск помимо обычных файлов. Выберите необходимый атрибут или соответствующую ему константу, которые определены в файле ISPPBuiltins.iss:
faReadOnly | файлы только для чтения | 0x00000001 |
faHidden | скрытые файлы | 0x00000002 |
faSysFile | системные файлы | 0x00000004 |
faVolumeID | файлы ID-тома | 0x00000008 |
faDirectory | файлы каталога | 0x00000010 |
faArchive | архивные файлы | 0x00000020 |
faSymLink | файлы символьных ссылок | 0x00000040 |
faAnyFile | любые файлы | 0x0000003F |
Атрибуты можно комбинировать между собой, используя логическую операцию "ИЛИ" как для значений, так и для констант. Например, для поиска также скрытых файлов и только для чтения, укажите в качестве второго параметра faReadOnly | faHidden.
[Files] #define FindHandle #define FindResult #define Mask "*.pas" #sub ProcessFoundFile #define FileName FindGetFileName(FindHandle) #if LowerCase(Copy(FileName, 1, 4)) == "ispp" FileName: {#FileName}; DestDir: {app}\ispp #else FileName: {#FileName}; DestDir: {app} #endif #endsub #for {FindHandle = FindResult = FindFirst(Mask, 0); FindResult; \ FindResult = FindNext(FindHandle)} ProcessFoundFile #if FindHandle #expr FindClose(FindHandle) #endif