Hi Naomi,
We encountered a similar problem using file masks on folders with > 10,000 files. The issue was related to short file names that were automatically generated. The short file name(8.3) matched the mask even though the long file name did not. We resolved by setting the registry key to disable short file name generation.
>Hi everybody,
>
>I decided to start a new thread, which is a continuation of "Invalid subscript reference" thread.
>
>I re-coded my program a minute ago to use sys(2000) instead of ADIR. I have a directory with more than 13K jpg files and I'm trying to search for *e4*.jpg. ADIR, Filer and SYS(2000) all return 112 files where 9 of them do not have e4 as part of the name.
>
>Here are the wrong files returned:
>
>K-NK1648PS.JPG
>W-PT9144OX.JPG
>W-ER3953D.JPG
>W-ER3963D.JPG
>W-TB2302D.JPG
>W-TB2123D.JPG
>W-TB2332D.JPG
>W-TB1207D.JPG
>W-PT9216D.JPG
>
>and here is the test program
>
> #define crlf CHR(13) + CHR(10)
>*!* oMyFiler = CREATEOBJECT('Filer.FileUtil')
>*!* oMyFiler.SearchPath = "t:\jpg"
>*!* oMyFiler.FileExpression = '*e4*.jpg'
>*!* oMyFiler.Find(0)
>*!* =MESSAGEBOX(oMyFiler.Files.Count)
>*!* _cliptext = ""
>*!* FOR EACH loFile IN oMyFiler.Files
>*!* _cliptext = _cliptext + loFile.Name + CRLF
>*!* NEXT
>=MESSAGEBOX(DIRECTORY("t:\jpg"))
>ltTime = DATETIME()
>_cliptext = ""
>CREATE CURSOR crsTest (FieldName C(50))
>lcFileName = SYS(2000,[t:\jpg\*e4*.jpg])
>DO WHILE NOT EMPTY(lcFileName)
>*!* IF LIKE(UPPER(myStemPart), UPPER(JUSTSTEM(lcFileName))) OR;
>*!* LIKE(UPPER(myExtPart), UPPER(JUSTEXT(lcFileName)))
>*!*
>*!* ENDIF
> WAIT WINDOW NOWAIT m.lcFileName
> IF NOT "E4" $ UPPER(m.lcFileName)
> _cliptext = _cliptext + m.lcFileName + CRLF
> INSERT INTO crsTest VALUES (m.lcFileName)
> endif
> lcFileName = SYS(2000,[t:\jpg\*e4*.jpg],1)
>ENDDO
>=MESSAGEBOX(DATETIME() - m.ltTime)
>=MESSAGEBOX(RECCOUNT('crsTest'))
>
>I'm accessing this computer through LogMeIn and the computer is connected to terminal server where the files reside. The connection with the server is not very good from our place.