Java FTPClient-远程文件大小0字节VXWorks

时间:2018-10-24 14:05:52

标签: java ftp-client vxworks

我正在使用apache commons FTP库,并试图查看运行VXWorks的USB记忆棒上的文件。每当我尝试从该系统查看任何文件时,它都会返回0文件大小。当服务器是Windows计算机时,这可以正常工作。我正在使用的代码是:

 public synchronized long getRemoteSize(String finalPath)
{
    // Send file and if sent file doesn't match the source file, resend
    try
    {
        FTPFile destinationFile = jh.getFtpClient().mlistFile(finalPath);
        if (destinationFile != null)
        {
            return destinationFile.getSize();
        }
        else
        {
            return 0;
        }
    }
    catch (IOException e)
    {
        return -1;
    }
}

我也尝试发送一个直接的SIZE命令,但该命令未被识别。有人对为什么总是返回0大小有其他选择或解释吗?

1 个答案:

答案 0 :(得分:1)

这听起来像您的VXWorks FTP服务器不支持MLST在后​​台使用的mlistFile()命令。 MLST命令是与RFC 3659一起添加的。为了使用该命令,服务器需要实现该RFC。

您最好的选择是使用LIST命令(例如listFiles(pathName))。这应该是一堆中最兼容的功能。此函数返回一个数组,而不是单个文件,因此您需要检查返回长度== 1,否则应减少替换的次数。