FTPClient检查权限

时间:2012-05-30 09:18:43

标签: java apache apache-commons-net

如果我在ftp://ftpdomainname.com有一个ftp服务器并且我想上传文件,我如何使用Commons Net检查其权限?

我试试:

ftpClient = new FTPClient();
ftpClient.connect(url.getHost());

ftpClient.login(username, pass);

FTPFile[] directories = mFtpClient.listDirectories("/");
for(FTPFile dir : directories) {
    permissions = dir.hasPermission(FTPFile.USER_ACCESS, FTPFile.READ_PERMISSION);
}

但它没有获得根服务器(文件夹)的权限,而是获取其子文件夹的权限。

我可以指定类似ftp://ftpdomainname.com/的网址并获取是否具有写权限吗?或者网址如ftp://ftpdomainname.com/subfolder1/subfolder2/

由于

1 个答案:

答案 0 :(得分:0)

使用Commons Net 3.1 FTPClient类,您可以通过发出以下命令尝试获取当前的FTP文件

 FTPFile current = mFTPClient.listFiles(".")[0];
 // Then check permissions as your upper code does.

毕竟,在大多数主机上,可以通过“。”来访问当前文件。

编辑根据评论进行了一些澄清。

假设您刚刚连接到FTP服务器(尝试上传文件之前):

ftpClient = new FTPClient();
ftpClient.connect(url.getHost());

ftpClient.login(username, pass);

完成后,立即尝试访问当前文件夹(应该是您的默认用户文件夹,换句话说就是您要上传文件的文件夹):

 FTPFile current = mFTPClient.listFiles(".")[0];

在此文件夹中,读取权限,您将拥有根文件夹的权限:

current.hasPermission(FTPFile.USER_ACCESS, FTPFile.READ_PERMISSION);

想写点东西?然后检查WRITE_PERMISSION。

相关问题