Java:从FTP服务器访问文件

Ric*_*ung 10 java ftp url file

所以我有这个FTP服务器里面有一堆文件夹和文件.

我的程序需要访问此服务器,读取所有文件并显示其数据.

出于开发目的,我一直在使用硬盘上的文件,就在"src"文件夹中.

但是现在服务器已启动并运行,我需要将软件连接到它.

基本上我想要做的是获取服务器上特定文件夹中的文件列表.

这是我到目前为止:

URL url = null;
File folder = null;
try {
    url = new URL ("ftp://username:password@www.superland.example/server");
    folder = new File (url.toURI());
} catch (Exception e) {
    e.printStackTrace();
}
data = Arrays.asList(folder.listFiles(new FileFilter () {
    public boolean accept(File file) {
        return file.isDirectory();
    }
}));
Run Code Online (Sandbox Code Playgroud)

但我收到错误"URI scheme is not'file'."

我理解这是因为我的URL以"ftp://"开头而不是"file:"

但是我似乎无法弄清楚我应该怎么做呢!

也许有更好的方法来解决这个问题?

Rei*_*eus 12

File对象无法处理FTP连接,您需要使用URLConnection:

URL url = new URL ("ftp://username:password@www.superland.example/server");
URLConnection urlc = url.openConnection();
InputStream is = urlc.getInputStream();
...
Run Code Online (Sandbox Code Playgroud)

考虑作为Apache Commons Net的替代方案FTPClient,它支持许多协议.这是一个FTP列表文件示例.