我正在处理需要在FTP服务器上连接的应用。然后,我需要获取一个名为" new_order.txt"的特定文件的大小。所以我使用方法mlistFile(String filePath),这是我上次在该应用程序上工作时的完美工作。但是现在,mlistFile返回null,当我使用getSize()时,我的应用程序崩溃了(但我已连接到服务器)。我真的需要一些帮助来找出问题所在。
以下是代码:
assert(count > 5) { "value too small" }
这是我的错误:
try {
String filePath = "new_order.txt";
FTPFile ftpFile = mFtpClient.mlistFile(filePath);
sizeFileFTPServer = ftpFile.getSize();
File downloadedFile = new File(mainActivity.getDir("JSONDir", Context.MODE_PRIVATE), "new_order.txt");
sizeDownloadedFile = downloadedFile.length();
} catch (IOException e) {
e.printStackTrace();
}
Log.d("SIZE FTP", Long.toString(sizeFileFTPServer));
Log.d("SIZE LOCAL", Long.toString(sizeDownloadedFile));
return (sizeDownloadedFile == sizeFileFTPServer);
我已连接到服务器,指定的文件存在,我上次使用此应用程序时代码运行良好,现在它没有。我输了。
答案 0 :(得分:1)
我也有这个问题。 使用此代码获取FTP中的大小
FTPFile[] ff = ftp.listFiles("/dir/file.jpg");
if(ff != null)
{
ff[0].getSize();
}
答案 1 :(得分:0)
较旧的服务器仅对目录列表支持LIST命令,
您可以使用:
client.connect(server, 21);
boolean success = FTPReply.isPositiveCompletion(client.sendCommand(FTPCmd.MLST, remotefileNm));
要测试您的服务器是否支持MLST命令,如果答案为false,则可以使用listfiles()方法...像我一样T_T