找回密码
 加入
搜索
查看: 1967|回复: 4

[网络通信] 关于利用FTPEx实现将FTP上的文件对比同步至本地时,目录的处理问题[已解决]

[复制链接]
发表于 2017-1-19 12:43:02 | 显示全部楼层 |阅读模式
本帖最后由 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[0][0] Then ExitLoop
                If FileGetTime("C:\os")&$aFile[$aFtp][0], 0,1) < StringRegExpReplace($aFile[$aFtp][3], '[^\d.]', '') Then
                        _FTP_FileGet($Conn,$aFile[$aFtp][0],"C:\os"&$aFile[$aFtp][0])
                EndIf
                $aFtp = $aFtp + 1
        WEnd
        
        Local $Ftpc = _FTP_Close($Open)
目前可以实现将FTP上的文件对比同步到本地,但遇上目录就GG了...
求教各位前辈解决思路m(_ _)m

------------------------------
已解决,参考了六楼的代码
http://www.autoitx.com/forum.php ... =ftp%2B%B1%E9%C0%FA
发表于 2017-1-20 09:13:45 | 显示全部楼层
建议先看FTP_ex.au3的UDF中的_FTP_DirPutContents这个函数的原形,再进行相应的修改。
 楼主| 发表于 2017-1-20 10:01:26 | 显示全部楼层
建议先看FTP_ex.au3的UDF中的_FTP_DirPutContents这个函数的原形,再进行相应的修改。
jsdn2000 发表于 2017-1-20 09:13


这个原型里很多关键函数不能用于FTP端,所以恐怕还是无解_(:з」∠)_

感觉目前主要需要解决两个问题:
1、如何列出FTP下的所有文件及目录(包括子目录下的)
2、如何区分所列出的内容是文件还是目录
发表于 2017-1-20 11:02:26 | 显示全部楼层
_FTP_ListToArray
获取当前远程目录的文件名, 目录或两项.
 楼主| 发表于 2017-1-20 16:55:45 | 显示全部楼层
_FTP_ListToArray
获取当前远程目录的文件名, 目录或两项.
拉风晓晓 发表于 2017-1-20 11:02


目前代码里所用的_FTP_ListToArrayEx也可以实现这个函数的功能。
问题是他们都只能获取当前目录
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-25 10:06 , Processed in 0.117093 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表