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/のようなURL

ありがとう

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 に答える