如何从java检查FTP服务器上的可写文件

如何从java检查FTP服务器上的可写文件,java,ftp,fileinputstream,ftp-client,Java,Ftp,Fileinputstream,Ftp Client,我能够连接Ftp服务器。我的要求是检查登录服务器后显示的路径是否可在ftp服务器中写入。 下面的代码未检查File remotefile=新文件(pwd) (或者可能是mlistDir)可能是您要在远程目录上调用的API。返回具有权限信息的对象。当然,只有当FTP服务器支持扩展时,这些功能才起作用 比如: FTPFile remoteDir = client.mlistFile(client.printWorkingDirectory()); if (remoteDir.hasPermissio

我能够连接Ftp服务器。我的要求是检查登录服务器后显示的路径是否可在ftp服务器中写入。 下面的代码未检查
File remotefile=新文件(pwd)

(或者可能是mlistDir)可能是您要在远程目录上调用的API。返回具有权限信息的对象。当然,只有当FTP服务器支持扩展时,这些功能才起作用

比如:

FTPFile remoteDir = client.mlistFile(client.printWorkingDirectory());
if (remoteDir.hasPermission(FTPFile.USER_ACCESS,FTPFile.WRITE_PERMISSION)) {
  ...
}

尝试上传一些东西,看看会发生什么。FTP协议中不支持获取读/写状态。你所能做的就是试试看它是否成功/失败。这是有限制的。因为在ftp服务器上放置文件时,会有一些触发器导致其他系统出现问题。您是否可以编写在ftp主机上运行的某种Web服务,以返回文件的写入状态?正如MarcB所说,本机FTP不会传输这些信息。不,我不应该根据我的要求在FTP服务器上接触或托管任何服务。我有Apache commons API,但当typedI检查Apache commons Net的旧版本时,FTPClient实例上没有出现mlistFile()。根据文档,它是从2011年5月的3.0版开始出现的。谢谢,我将它的版本更改为3.0,并获得了方法mlistFile()。但是remoteDir返回null?client.printWorkingDirectory()返回的路径类似于/home1/fdlqa302/cprg/mahts/mergereR/fromGIRARI,列出了目录中所有被验证为可写的文件,然后使用方法权限,那么它就可以工作了。
FTPFile remoteDir = client.mlistFile(client.printWorkingDirectory());
if (remoteDir.hasPermission(FTPFile.USER_ACCESS,FTPFile.WRITE_PERMISSION)) {
  ...
}