DECLARE INTEGER InternetOpen in WinINet.dll ; STRING Agent, INTEGER Type, STRING Proxy, STRING Bypass, INTEGER Flags DECLARE INTEGER InternetCloseHandle in WinINet.dll ; INTEGER InternetHandle DECLARE INTEGER InternetConnect in WinINet.dll ; INTEGER InternetSession, STRING Server, INTEGER Port, ; STRING UserName, STRING Password, INTEGER Service, INTEGER Flags, INTEGER Context DECLARE INTEGER FtpSetCurrentDirectory IN WinINet.dll ; INTEGER FtpSession, STRING Directory DECLARE INTEGER FtpFindFirstFile IN WinINet.dll ; INTEGER FtpSession, STRING FilePattern, STRING @ FindData, INTEGER Flags, ; INTEGER Context DECLARE INTEGER InternetFindNextFile IN WinINet.dll ; INTEGER FtpDir, STRING @ FindData LOCAL Server AS String LOCAL Port AS Integer LOCAL UserName AS String LOCAL Password AS String LOCAL RemoteDir AS String LOCAL FilePattern AS String LOCAL FileData AS String LOCAL ARRAY RemoteFiles(1) * set as appropriate m.Server = "yourserver" m.Port = 21 m.UserName = "login" m.Password = "password" m.RemoteDir = "/public" m.FilePattern = "Order*.csv" m.FileData = REPLICATE(CHR(0),318) LOCAL NetSession AS Integer LOCAL FTPSession AS Integer LOCAL FTPDir AS Integer m.NetSession = InternetOpen("Wininet",0,.NULL.,.NULL.,0) IF m.NetSession != 0 m.FTPSession = InternetConnect(m.NetSession,m.Server,m.Port,m.UserName,m.Password,1,0x08000000,0) IF m.FTPSession != 0 IF FtpSetCurrentDirectory(m.FTPSession,m.RemoteDir) != 0 * get the first file that matches the pattern m.FTPDir = FtpFindFirstFile(m.FTPSession,m.FilePattern,@m.FileData,0,0) IF m.FTPDir != 0 * store its name DIMENSION m.RemoteFiles(1) m.RemoteFiles[1] = STREXTRACT(SUBSTR(m.FileData,45,260),"",CHR(0),1,2) m.FileData = REPLICATE(CHR(0),318) * and repeat, until no more files are found DO WHILE InternetFindNextFile(m.FTPDir, @m.FileData) != 0 DIMENSION m.RemoteFiles(ALEN(m.RemoteFiles) + 1) m.RemoteFiles[ALEN(m.RemoteFiles)] = STREXTRACT(SUBSTR(m.FileData,45,260),"",CHR(0),1,2) m.FileData = REPLICATE(CHR(0),318) ENDDO InternetCloseHandle(m.FTPDir) ENDIF ENDIF InternetCloseHandle(m.FTPSession) ENDIF InternetCloseHandle(m.NetSession) ENDIF