我需要连接到 FTP 服务器并浏览所有文件,而不使用任何库(例如 apache.commons),因为我目前无法选择获取这些库。
我尝试使用简单的 URL 连接:
URL url = new URL("username:password@ip/folder/");
URLConnection conn = url.openConnection();
BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line;
while ( (line = reader.readLine()) != null ) {
System.out.println(line);
}
reader.close();
当我不包含 /folder/
时,它可以工作,但它会打印出许多我什至在 FTP 服务器的主位置中看不到的内容,我不知道如果它给我文件或其他数据。
但是当我包含 /folder/
时,我收到错误 CWD/folder/:550 无法更改目录
我无法更改目录的权限,它是只读的,这就是我所需要的。
这有什么问题吗?是否可以只使用 java 的默认库?
最佳答案
首先,您需要使用 FTP URL:
URL url = new URL("ftp:username:password@ip/folder/");
假设用户名
和密码
被替换为正确的值。
其次,如果您可以通过 FTP 访问文件夹
,它会向您提供某种格式的目录列表。如果不这样做,您需要研究收到的异常消息。如果您省略 /folder
,它将为您提供该 用户名
的 FTP 服务器默认根目录的列表。代码 550 表示访问问题或目录不存在。
关于Java连接FTP服务器并使用java默认库下载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38196568/