java - Apache Commons VFS : working with FTP

标签 java ftp apache-commons-vfs

我正在尝试将 Apache Commons VFS 与 FTP 结合使用。在我的 FTP 上有下一个文件和文件夹结构:

/
/test
/test/in
/test/in/file1.txt
/test/in/file2.txt

我需要连接并读取文件夹/test/in 中的所有文件(它一直在变化)。代码:

        FileSystemManager fsManager = null;
        FileSystem fs = null;
        FileSystemOptions opts = new FileSystemOptions();
        fsManager = VFS.getManager();

        FileObject path = fsManager.resolveFile("ftp://user:password@my.ftp.host/test/in/", opts);

        fs = path.getFileSystem();

        //prints Connection successfully established to /test/in
        System.out.println("Connection successfully established to " + path.getName().getPath());

但是我无法得到文件列表,因为它说/test/in 不存在。 A 做了一些测试来检查文件类型:System.out.println(path.getType()); 不同的路径。结果:

ftp://user:password@my.ftp.host/test - 文件

ftp://user:password@my.ftp.host/test/in - 虚构的

ftp://user:password@my.ftp.host/test/in/file1.txt - 文件

FileType.IMAGINARY 表示该文件不存在。 对如何使用 ftp 文件夹有任何想法吗?

最佳答案

只需为 ftp 设置“被动”模式:

FtpFileSystemConfigBuilder.getInstance().setPassiveMode(opts, true);

关于java - Apache Commons VFS : working with FTP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6046220/

相关文章:

Java SFTP指定绝对路径

java - org.apache.commons.vfs.FileSystemException : Could not connect to SFTP server at "sftp://username:***@114.XX.XX.XX/" on port 21

java - 简单java maven项目中的log4j

java - 我原来的 Java 字体程序 - 使用不同字母时倾斜?

java - 硬件支持 HAL 太慢,只能写入 720 帧中的 0

c# - FtpWebRequest ListDirectory 不返回隐藏文件

java - %2f 或常见 vfs 中的其他特殊字符

java - 授予权限 java.lang.RuntimePermission 修改线程

java - 为什么我的 InputStream 在 Android 中无法工作?

php - 将新的 Laravel 项目部署到实时服务器 - 内部页面链接不起作用