gpt4 book ai didi

java - FTP客户端子目录创建

转载 作者:行者123 更新时间:2023-12-02 07:11:39 25 4
gpt4 key购买 nike

我正在使用 FTPClient 在 FTP 服务器中创建子目录。我想在“Root”下创建一个目录“Archive”。我使用以下函数创建子目录。

boolean s = ftNew.makeDirectory("/"+folderName+"/Archive"); 

但它返回 false 并且无法创建子目录“Archive”。怎么解决这个问题?

最佳答案

  1. 用户可能没有创建目录的权限(至少在这个特定位置)。
  2. “folderName”描述的目录是否存在?如果没有,那么在单个调用中创建整个目录层次结构(即/{folderName}/Archive)时会遇到一些困难。确保“folderName”存在或在单独的步骤中创建它。

FTPClient 的 makeDirectory 返回 true 或 false,它不是很有用,而且结果相当模糊。幸运的是,您可以改进代码以报告精确的 FTP 状态消息。

这是您需要的:

private static void showServerReply(FTPClient ftpClient) {
String[] replies = ftpClient.getReplyStrings();
if (replies != null && replies.length > 0) {
for (String aReply : replies) {
System.out.println("SERVER: " + aReply);
}
}
}

在每个 FTPClient 方法之后调用此方法,例如:

package apachenet.ftp;

import java.io.IOException;
import org.apache.commons.net.ftp.FTPClient;

public class App {
public static void main( String[] args ) {
FTPClient client = new FTPClient();
FileInputStream fis = null;
try {
client.connect("127.0.0.1");
showServerReply(client);
client.login("pwyrwinski", "secret");
showServerReply(client);
System.out.println("Current working directory is: " + client.printWorkingDirectory());
String someDirectory = "nonexistentDir";
client.makeDirectory("/" + someDirectory + "/Archive");
showServerReply(client);

client.logout();
showServerReply(client);
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (fis != null) {
fis.close();
}
client.disconnect();
} catch (IOException e) {
e.printStackTrace();
}
}
}

private static void showServerReply(FTPClient ftpClient) {
// ...
}
}

我的机器上的结果:

SERVER: 220 (vsFTPd 2.3.5)
SERVER: 230 Login successful.
Current working directory is: "/home/pwyrwinski"
SERVER: 550 Create directory operation failed.
SERVER: 221 Goodbye.

当我将String someDirectory更改为“home/pwyrwinski”时:

SERVER: 220 (vsFTPd 2.3.5)
SERVER: 230 Login successful.
Current working directory is: "/home/pwyrwinski"
SERVER: 257 "/home/pwyrwinski/Archive" created
SERVER: 221 Goodbye.

550 是表示许可或访问被拒绝的代码,此代码和其他代码很容易通过 Google 搜索到。
我希望这能帮到您。

关于java - FTP客户端子目录创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15431430/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com