找回密码
 加入
搜索
查看: 1247|回复: 7

[网络通信] [已解决] 如何在 FTP 查找文件或目录是否存在?

[复制链接]
发表于 2021-10-30 14:53:43 | 显示全部楼层 |阅读模式
本帖最后由 yhxhappy 于 2021-11-15 16:15 编辑

大家好。

我需要检查FTP中是否存在某个文件或目录。我知道可以通过 _FTP_ListToArray 获取 文件/目录 数组,再在数组中搜索,但如果文件数很多的时候会影响效率。

请问有没有直接方法,类似 FileExists 的方式查找?
发表于 2021-11-1 15:47:27 | 显示全部楼层
谁说数组效率低
 楼主| 发表于 2021-11-1 22:00:25 | 显示全部楼层

如果目录中只有一两百个文件还好说。

我的FTP是用来存放日志文件,文件数量慢慢积累至少几十万个。我现在没有这么多文件试验效率,但我认为肯定不会快。
 楼主| 发表于 2021-11-2 21:15:28 | 显示全部楼层
看到有 _FTP_Command 函数,但写的比较简单,不了解用法。

网上搜索了一些方法,比如 rstatus[file-name] ,返回的结果只有0,1,-1等。不知道怎么获取返回值。
 楼主| 发表于 2021-11-15 16:14:47 | 显示全部楼层
已找到解决办法。通过 _FTP_Command 实现,但还是不知道怎么获取它的返回值。

_FTP_Command($Conn, "SIZE FILE")  "SIZE FILE" 获取文件的尺寸

如:_FTP_Command($Conn, "SIZE abc.txt"),返回 1 说明文件存在,返回 0 说明文件不存在。
发表于 2021-11-15 16:20:31 | 显示全部楼层
yhxhappy 发表于 2021-11-15 16:14
已找到解决办法。通过 _FTP_Command 实现,但还是不知道怎么获取它的返回值。

_FTP_Command($Conn, "SIZ ...

$rt = _FTP_Command($Conn, "SIZE abc.txt")
$rt 不就是返回值?
 楼主| 发表于 2021-12-14 14:57:56 | 显示全部楼层
afan 发表于 2021-11-15 16:20
$rt = _FTP_Command($Conn, "SIZE abc.txt")
$rt 不就是返回值?

$rt = _FTP_Command($Conn, "SIZE abc.txt")

$rt只是返回这个命令有没有执行成功,0失败,1成功

_FTP_GetLastResponseInfo($Err, $sFileSize)
$sFileSize就是返回值
发表于 2021-12-14 15:34:22 | 显示全部楼层
yhxhappy 发表于 2021-12-14 14:57
$rt = _FTP_Command($Conn, "SIZE abc.txt")

$rt只是返回这个命令有没有执行成功,0失败,1成功

你上面说的:
如:_FTP_Command($Conn, "SIZE abc.txt"),返回 1 说明文件存在,返回 0 说明文件不存在。

跟你现在说的:
$rt只是返回这个命令有没有执行成功,0失败,1成功

。。。。
看来你对返回值是有什么误解~
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-3-29 09:34 , Processed in 0.070181 second(s), 19 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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