1

如果我在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/这样的 url并获取我是否有写权限吗?或者像ftp://ftpdomainname.com/subfolder1/subfolder2/这样的网址?

谢谢

4

1 回答 1

1

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

 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。

于 2012-05-30T16:00:55.407 回答