>>>I am using ADIR to get a specific number of files from a directory based on a criteria. So, ADIR(laFile,gcFat+'thread\*.*') will create an array and I can now use ALEN(laFile,1) to get the file count. However, on big directory this is causing a big array to be created just to get the number of files. How can I optimize that?
>>
>>Michel,
>>As Nadya posted, ADir() oes return the number of rows in the array. But as you already sigthed, the array still gets built and this could a significant amount of time on large directories. It could also fail on very large directories because of the 65000 element limit of arrays.
>>
>>You can use the old Sys(2000) function.
>>local lxx, lcfile
>>lxx = 0
>>lcfile = sys(2000,gcFat+'thread\*.*')
>>do while !(lcfile=='')
>> lcfile = sys(2000,gcFat+'thread\*.*',1)
>> lxx = lxx + 1
>>enddo
>>
>>If you only need the count, this should give you what you want.
>
>I tried it and it works well.
>
>However, it would be nice is the FileSystemObject would allow that in one command.