Well FTP does not support an If Exist contruct directly.
You might be able to do some listing to a temporary file and then parse the temporary file though.

Here is something that works well on the Symantec site which I'm sure could be modified to work on McAfee's site if wanted.


;REQUIREMENTS: 
;1: Must be run with an account that has Admin rights on the AV Servers
;2: KiXtart v4.22 or newer.
;Download: http://www.kixtart.org/binary/distrib/KiX2010_451.zip
;3: Only requires the WKIX32.EXE file from within the KiXtart zip file,
;all other files are not required
;4: IE Proxy settings need to allow access to the Symantec site to download files.

;*** NOTE - WARNING ***
;Must only be run for Symantec Antivirus 8.x and 9.x and 10.x Servers.
;Do not include any 7.x Servers in the list.

Break On
Dim $SO
$SO=SetOption('Explicit','On')
$SO=SetOption('NoVarsInStrings','On')
$SO=SetOption('NoMacrosInStrings','On')

Dim $URL,$Link,$RC,$Page,$Server,$Servers,$File,$Download,$Target,$FileSize
$URL='http://www.sarc.com/avcenter/download/pages/US-SAVCE.html'
$Link='http://definitions.symantec.com/defs/xdb/'
$RC=readHTML($URL)
$File=InStr($RC,$Link)
$File=SubStr($RC,$File+41,12)
$Download = $Link + $File
; Location where the file will be downloaded to
$Target='C:\DOWNLOAD\'
; Array list of 2000/2003 Servers
$Servers='AV01','AV02'

'Downloading ' + $File + ' Please wait...' ?
If FTPget($Download,$Target+$File)
; Unless link is completely down, probably will never get this error
'Error occured: ' + @ERROR + ' ' + @SERROR ?
Else
'Download complete... File saved in ' + $Target + ' as ' + $File ?
; Check the size of the file to confirm you didn't download just blank
; or small html file
$FileSize = GetFileSize($Target+$File)
If $FileSize >9000000
'Ready to update AntiVirus Defs ' ?
'File size downloaded was: ' + $FileSize ?
;Copy the XDB file to the 2000/2003 Servers
For Each $Server In $Servers
Copy $Target+$File '\\'+$Server+'\c$\PROGRA~1\SAV'
'Copying to ' + $Server +'... ' + @ERROR + ' ' + @SERROR ?
Next
; This line archives the definition files to AV02 for reference
MOVE $Target+$File '\\AV02\xdb\'
'Moving xdb file to AV02 archive... ' +@ERROR + ' ' + @SERROR ?
'Definition updates completed...' ?
'Please press a key to continue...' ?
Else
'The file size appears to be too small. '+
'Update aborted, please try later...' ?
'File size was: ' + $FileSize ?
Del $Target+$File
'Press a key to continue...' ??
GET $Pause
Quit 1
EndIf
'Press a key to continue...' ??
GET $Pause
EndIf

Function readHTML($page)
Dim $obj
$obj=createobject("microsoft.xmlhttp")
$obj.open("get",$page,not 1)
$obj.send
$readHTML=$obj.responsebody
EndFunction

Function FTPget($sURL, $sTargetFile, optional $sUser, optional $sPass)
Dim $oFTP, $oStream
$sUser=""+$sUser
$oFTP = CreateObject("Microsoft.XMLHTTP")
if @error $ftpget=1 exit 1 endif
$oStream = CreateObject("ADODB.Stream")
if @error $ftpget=2 exit 2 endif
if $sUser
$oFTP.Open("GET", $sURL, not 1, $sUser, $sPass)
else
$oFTP.Open("GET", $sURL, not 1)
endif
if @error $ftpget=3 exit 3 endif
$oFTP.Send
$oStream.Type = 1
$oStream.Mode = 3
$oStream.open
$oStream.Write($oFTP.responseBody)
if @error $ftpget=4 exit 4 endif
$oStream.SaveToFile($sTargetFile, 2)
if @error $ftpget=5 exit 5 endif
$oStream.Close
EndFunction