有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

ftp客户端Java FTPClient远程文件大小0字节VXWorks

我正在使用apache commons FTP库,试图查看运行VXWorks的U盘上的文件。每次我试图查看该系统中的任何文件时,它都会返回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;
    }
}

我还试图发送一个直码命令,但没有被识别。有人有其他选择或解释为什么它总是返回0大小吗


共 (1) 个答案

  1. # 1 楼答案

    听起来你的VXWorks FTP服务器不支持MLST命令,这是mlistFile()在引擎盖下使用的命令。在MLST命令中添加了RFC 3659。为了使用该命令,服务器需要实现该RFC

    最好使用LIST命令(例如^{})。这应该是最兼容的功能。这个函数返回一个数组而不是一个文件,因此需要检查返回长度==1,否则应该或多或少地替换