找回密码
 加入
搜索
查看: 5334|回复: 9

[AU3基础] 在论坛找了一个FTP遍历的例子,但遍历速度太慢了,有没有会call dll改进一下

  [复制链接]
发表于 2011-8-17 14:27:23 | 显示全部楼层 |阅读模式
本帖最后由 auto 于 2011-8-26 19:18 编辑

#include <FTPEx.au3>
#include <Array.au3>
$server = 'ftp.mozilla.org';ftp.mozilla.org'  ;服务器
$name = '' ;用户名
$pass = '' ;密码
$Port = '21' ;端口
$path = "" ;路径
Global $pp[500]
ftp($server, $name, $pass, $Port, "")

Func ftp($server, $name, $pass, $Port, $path)
        $Open = _FTP_Open('MyFTP') ;打开一个FTP会话
        $Conn = _FTP_Connect($Open, $server, $name, $pass, 0, $Port) ;连接到ftp服务器
        $t = _FTP_DirSetCurrent($Conn, $path)
        ConsoleWrite($t&@TAB&$path&@CR)
        $aFile = _FTP_ListToArrayEx($Conn, 0, 0) ;列目录(0=文件和目录,1=目录,2=文件)(格式0=mm/dd/yyyy,1=yyyy/mm/dd)
        For $i = 1 To $aFile[0][0]
                If $aFile[$i][2] = 16 And $aFile[$i][0] <> "." And $aFile[$i][0] <> ".." Then
                        $path = $path & $aFile[$i][0] & "/";
                        ftp($server, $name, $pass, $Port, $path)
                EndIf
        Next

        $Ftpc = _FTP_Close($Open) ;关闭 _FTP_Open 打开的回话
EndFunc   ;==>ftp
当调用自身程序完成时,好像值不对?不知道是哪个地方错了??
发表于 2011-8-17 15:00:07 | 显示全部楼层
什么值不对,请说清楚,
 楼主| 发表于 2011-8-17 16:11:05 | 显示全部楼层
回复 2# leon460


    不能正常遍历,当子程序运行完时返回上一层时,$PATH的值不对
发表于 2011-8-17 20:20:35 | 显示全部楼层
本帖最后由 xiehuahere 于 2011-8-17 20:21 编辑
$path = $path & $aFile[$i][0] & "/";
ftp($server, $name, $pass, $Port, $path)


这里的path跟函数定义时的参数path最好区别开来,用另一个变量如 path_new。
$path_new = $path & $aFile[$i][0] & "/"
ftp($server, $name, $pass, $Port, $path_new)
发表于 2011-8-17 22:53:50 | 显示全部楼层
_FTP_Open、_FTP_Connect、_FTP_Close 也在递归范围内了,把这两句放于ftp函数之外。
发表于 2011-8-18 08:24:57 | 显示全部楼层
我写了个FTP同步的,也许你需要。
http://www.autoitx.com/thread-26711-1-1.html
 楼主| 发表于 2011-8-18 11:26:32 | 显示全部楼层
回复 5# pusofalse


这个试着放到程序外部。。我觉得也是放到外部,不然可能会产生很多新连接,
不单返回有问题,就是往下级目录也出错。进不了下一级

感觉一个连接只能设置一次远程目录,再设置就会无效
 楼主| 发表于 2011-8-18 13:10:14 | 显示全部楼层
回复 6# ac5474012


    你代码运行也是出错,。。FTP的斜杠是错的吧。。
还有嵌套代码是一样。。
我只是将你的代码简化了而已
你的代码也不能正确运行。。不能下载文件到本地
只创建了几个文件夹就停了
 楼主| 发表于 2011-8-26 14:40:06 | 显示全部楼层
没有人做FTP遍历的吗,现在找到一个可用的,
不过每一次列表都、_FTP_Open,_FTP_Connect一次。速度太慢了,
FTP东西有点多
发表于 2011-9-17 01:35:16 | 显示全部楼层
我写了个,只是本来就连上FTP的那种, 上去找文件
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-9-21 00:27 , Processed in 0.099532 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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