To get a directory list you just need to get the HTML page and parse it.

Here is a rough example adapted from FTPGet() - you may need to change the parsing rules depending on the response from the Web server.

Note, there is no sanity checking on the path or the returned data type. GIGO.

 Code:
Break ON
$=SetOption("Explicit","ON")
 
Dim $sFile,$sFileList,$sURL
 
$sURL="ftp://ftp.microsoft.com/deskapps"
 
$sFileList=FTPDir($sURL)
If $sFileList
	"Entries in "+$sURL+":"+@CRLF
	For Each $sFile in Split($sFileList,@CRLF)
		$sFile+" is a "+IIf(Right($sFile,1)="/","DIRECTORY","FILE")+@CRLF
	Next
Else
	"There are no entries in "+$sURL+@CRLF
EndIf
 
Function FTPDir($sURL,Optional $sUser, $sPass, $iForce)
	Dim $oFTP,$,$iERROR,$sLine,$iParse,$sLoc,$dwSM
 
	$iERROR=0
	$iParse=0
	$sLoc="HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings"
	$sUser=""+$sUser
	If $iForce
		$dwSM = Readvalue($sLoc,"Syncmode5")
		$=writevalue($sLoc,"Syncmode5",3,"REG_DWORD")
	EndIf
	$oFTP = CreateObject("Microsoft.XMLHTTP")
	If @error $ftpget=1 Else
		If $sUser $oFTP.Open("GET", $sURL, Not 1, $sUser, $sPass) Else $oFTP.Open("GET", $sURL, Not 1) EndIf
		If @error $ftpget=3 Else
			$oFTP.Send
			For Each $sLine in Split($oFTP.responseBody,@CRLF)
				Select
				Case InStr($sLine,"<PRE>") $iParse=1
				Case InStr($sLine,"</PRE>") $iParse=0
				Case $iParse
					$sLine=Split($sLine+'<A HREF="','<A HREF="')[1]
					$sLine=Split($sLine,'"')[0]
					If $sLine $FTPDir=$FTPDir+@CRLF+$sLine EndIf
				EndSelect
			Next
		EndIf
	EndIf
	$oFTP=0
	If $iForce $=WriteValue($sLoc,"Syncmode5",$dwSM,"REG_DWORD") EndIf
	$FTPDir=SubStr($FTPDir,3)
	Exit $iERROR
EndFunction
;
; vim: ts=4 sw=4 ai filetype=kix