如果我在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/?
由于
答案 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。