使用 Apache Commons Net 在 ESP8266 上列出文件时得到 "Unable to determine system type - response: 500 Unknow command"
Getting "Unable to determine system type - response: 500 Unknow command" when listing files on ESP8266 with Apache Commons Net
我尝试连接到 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: Unable to determine system type - response: 500 Unknow command.
我使用 Apache Commons Net FTP 库。那么我的代码有什么问题呢?从 FileZilla
Windows 客户端,我可以连接。可能是因为在 ESP 中是 SPIFF 文件系统?还是另外一个原因?
感谢您的回答和兴趣!
您的服务器不支持 SYST
命令,FTPClient
需要决定如何解析 LIST
命令的响应。
解决方案是:
- 如果您的服务器支持
MLSD
命令,请使用 mlistDir
而不是 listFiles
。
- 或使用
System.setProperty
设置 FTP_SYSTEM_TYPE_DEFAULT
或 FTP_SYSTEM_TYPE
以建议您的服务器使用的目录列表格式。
我尝试连接到 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: Unable to determine system type - response: 500 Unknow command.
我使用 Apache Commons Net FTP 库。那么我的代码有什么问题呢?从 FileZilla
Windows 客户端,我可以连接。可能是因为在 ESP 中是 SPIFF 文件系统?还是另外一个原因?
感谢您的回答和兴趣!
您的服务器不支持 SYST
命令,FTPClient
需要决定如何解析 LIST
命令的响应。
解决方案是:
- 如果您的服务器支持
MLSD
命令,请使用mlistDir
而不是listFiles
。 - 或使用
System.setProperty
设置FTP_SYSTEM_TYPE_DEFAULT
或FTP_SYSTEM_TYPE
以建议您的服务器使用的目录列表格式。