Android - FTPClient - mlistFile返回null

时间:2016-05-10 15:32:45

标签: android ftp

我正在处理需要在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);

我已连接到服务器,指定的文件存在,我上次使用此应用程序时代码运行良好,现在它没有。我输了。

2 个答案:

答案 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