使用 Apache Commons Net 列出 ESP8266 上的文件时出现“无法确定系统类型 - 响应:500 Unknow command”

问题描述 投票:0回答:1

我尝试在

ESP8266
连接到 FTP 服务器。连接成功,但我无法获取服务器上的文件列表。

我的代码是:

FTPClient mFtpClient = new FTPClient();
mFtpClient.setConnectTimeout(10000);
mFtpClient.connect(InetAddress.getByName(ip));
status = mFtpClient.login(userName, pass);
Log.e("isFTPConnected", String.valueOf(status));
if (FTPReply.isPositiveCompletion(mFtpClient.getReplyCode())) {
    mFtpClient.setFileType(FTP.BINARY_FILE_TYPE);
    mFtpClient.enterLocalPassiveMode();
    FTPFile[] mFileArray = mFtpClient.listFiles();
    Log.e("Size", String.valueOf(mFileArray.length));
}

逻辑上我得到错误:

java.io.IOException:无法确定系统类型 - 响应:500 Unknow 命令。

我使用 Apache Commons Net FTP 库。那么我的代码有什么问题吗?从

FileZilla
Windows 客户端,我可以连接。可能的原因是ESP中是SPIFF文件系统?还是另有原因?

感谢您的回答和兴趣!

java android ftp apache-commons-net
1个回答
2
投票

您的服务器不支持

SYST
命令,
FTPClient
需要决定如何解析
LIST
命令的响应。

解决方案是:

  • 如果您的服务器支持
    MLSD
    命令,请使用
    mlistDir
    而不是
    listFiles
  • 或使用
    System.setProperty
    设置
    FTP_SYSTEM_TYPE_DEFAULT
    FTP_SYSTEM_TYPE
    建议您的服务器使用的目录列表格式。
© www.soinside.com 2019 - 2024. All rights reserved.