关于利用FTPEx实现将FTP上的文件对比同步至本地时,目录的处理问题[已解决]
本帖最后由 alomoi 于 2017-1-20 17:28 编辑程序目的是这样的,遍历FTP上的文件,与本地文件做对比
如果FTP上的文件新于本地文件,则下载更新,否则跳过 Local $server = ip
Local $username = ftpname
Local $pass = ftppasswd
Local $Open = _FTP_Open('MyFTP Control')
Local $Conn = _FTP_Connect($Open, $server, $username, $pass)
Local $aFile = _FTP_ListToArrayEx($Conn, 0)
Local $aFtp = 1
While 1
If $aFtp > $aFile Then ExitLoop
If FileGetTime("C:\os\")&$aFile[$aFtp], 0,1) < StringRegExpReplace($aFile[$aFtp], '[^\d.]', '') Then
_FTP_FileGet($Conn,$aFile[$aFtp],"C:\os\"&$aFile[$aFtp])
EndIf
$aFtp = $aFtp + 1
WEnd
Local $Ftpc = _FTP_Close($Open)目前可以实现将FTP上的文件对比同步到本地,但遇上目录就GG了...
求教各位前辈解决思路m(_ _)m
------------------------------
已解决,参考了六楼的代码
http://www.autoitx.com/forum.php?mod=viewthread&tid=26605&highlight=ftp%2B%B1%E9%C0%FA 建议先看FTP_ex.au3的UDF中的_FTP_DirPutContents这个函数的原形,再进行相应的修改。 建议先看FTP_ex.au3的UDF中的_FTP_DirPutContents这个函数的原形,再进行相应的修改。
jsdn2000 发表于 2017-1-20 09:13 http://www.autoitx.com/images/common/back.gif
这个原型里很多关键函数不能用于FTP端,所以恐怕还是无解_(:з」∠)_
感觉目前主要需要解决两个问题:
1、如何列出FTP下的所有文件及目录(包括子目录下的)
2、如何区分所列出的内容是文件还是目录 _FTP_ListToArray
获取当前远程目录的文件名, 目录或两项. _FTP_ListToArray
获取当前远程目录的文件名, 目录或两项.
拉风晓晓 发表于 2017-1-20 11:02 http://www.autoitx.com/images/common/back.gif
目前代码里所用的_FTP_ListToArrayEx也可以实现这个函数的功能。
问题是他们都只能获取当前目录
页:
[1]