FTPClient(Apache commons-net)でリモートディレクトリが存在するかどうかを確認できますか?Apache Commons FTPClient、リモートディレクトリが存在するかどうかを確認してアクセス権を取得する(linux-unix)
私はこのような何かやりたい:私もこれを理解するために必要な、少しの遊びをやった後
ftp.getPermisions(String path) //returns -rwxr-xr-x
FTPClient(Apache commons-net)でリモートディレクトリが存在するかどうかを確認できますか?Apache Commons FTPClient、リモートディレクトリが存在するかどうかを確認してアクセス権を取得する(linux-unix)
私はこのような何かやりたい:私もこれを理解するために必要な、少しの遊びをやった後
ftp.getPermisions(String path) //returns -rwxr-xr-x
:
ftp.isDirectory(String path) //returns true, false
そして、ディレクトリのパーミッション(chmodコマンド)を取得します、私はそれを考え出したと思う。私はまだこれをテストするために得たhavent、私はそれがtrikにこのことができます/作品
FTPFile file[];
file = new FTPFile[ftpClient.listFiles().length];
for (int i = 0; i<file.length; i++) {
if (file[i].getName() == "directory name") {
if (file[i].isDirectory()) {
//Do stuff if it is a directory here
if (file[i].hasPermission(access, permission) {
//Do whatever you want with permissions - access and permission arguments are int's
}
}
}
}
希望をやると思います。これはかなり冗長な方法のようにも見えるので、もっと良い方法があるかもしれません。 、あなたがチェックする必要があるディレクトリに作業ディレクトリを変更するには、このライブラリとAndroid
しようとする新しいイムIDK:
boolean directoryExists = FTPClient.changeWorkingDirectory("path/to/somedir")
をリモートホストはそれをサポートしている場合は、最も簡単な方法はmlistFile()です。あなただけをチェックする必要があるもの
if (ftpClient.featureValue("MLST") != null) {
FTPFile file = ftpClient.mlistFile(null);
boolean b = file.hasPermission(FTPFile.USER_ACCESS, FTPFile.WRITE_PERMISSION);
}
が、これはあなたが整数
250
値を返しますちょうどftpClient.cwd("your Directory Name")
です - ファイルが存在する場合
550
OR
- ファイルdoesnの場合は」 t存在Ex例:
if(ftpClient.cwd(uploadDirectoryPath)==550){
System.out.println("Directory Doesn't Exists");
}else if(ftpClient.cwd(uploadDirectoryPath)==250){
System.out.println("Directory Exists");
}else{
System.out.println("Unknown Status");
}
これは本当にこれを行うための唯一の方法と思われます。私はそれがクライアントよりもFTPの限界だと思う。 – MaddHacker