Java FTPClient - 远程文件大小 0 字节 VXWorks
Java FTPClient - Remote File size 0 bytes VXWorks
我正在使用 apache commons FTP 库并试图查看 USB 记忆棒上的文件 运行 VXWorks。每次我尝试查看该系统中的任何文件时,它 returns 的文件大小为 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 大小返回,有人有任何其他选择或任何解释吗?
听起来您的 VXWorks FTP 服务器不支持 MLST
命令,这是 mlistFile()
在幕后使用的命令。 MLST
命令添加了 RFC 3659。为了使用该命令,服务器需要实施该 RFC。
最好的办法是使用 LIST
命令(例如 listFiles(pathName)
)。这应该是一堆中最兼容的功能。此函数 return 是一个数组而不是单个文件,因此您需要检查 return 长度 == 1,否则应该或多或少地替换掉。
我正在使用 apache commons FTP 库并试图查看 USB 记忆棒上的文件 运行 VXWorks。每次我尝试查看该系统中的任何文件时,它 returns 的文件大小为 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 大小返回,有人有任何其他选择或任何解释吗?
听起来您的 VXWorks FTP 服务器不支持 MLST
命令,这是 mlistFile()
在幕后使用的命令。 MLST
命令添加了 RFC 3659。为了使用该命令,服务器需要实施该 RFC。
最好的办法是使用 LIST
命令(例如 listFiles(pathName)
)。这应该是一堆中最兼容的功能。此函数 return 是一个数组而不是单个文件,因此您需要检查 return 长度 == 1,否则应该或多或少地替换掉。