URLConnection的FTP列表文件(URLConnection FTP list files

2019-07-17 23:08发布

URL url =  new URL("ftp://user:pass@ftp.example.com/thefolder/");
URLConnection connection = url.openConnection();
...
// List files in folder...

使用类似上述情况,我不知道我怎么会夹“thefolder”内抓的文件列表?


嗨,大家好,

从这个原来的问题上之后,我已经把这个简单的FTP连接,也就是所有的工作,看起来很不错。 它可以看到/现场/ conf目录/位置,并将它们复制到所有本地/ conf目录/位置中的所有文件。 唯一的问题是,它的复制文件,但没有content.They都是0KB而空!

任何人都可以看到什么明显的是,会被复制的文件名,但不是文件内容。

干杯

KPS

try {
    FTPClient ftp = new FTPClient();
    ftp.connect("000.000.000.000");
    ftp.login("USER", "PASSWORD");
    ftp.enterLocalPassiveMode();
    ftp.setFileType(FTP.BINARY_FILE_TYPE);

    FTPFile[] files = ftp.listFiles("/live/conf/");
    for (int i=0; i < files.length; i++) {
        if (files[i].getName().contains(".csv")) {

            String remoteFile1 = files[i].getName();
            File downloadFile1 = new File("/var/local/import/conf/"+files[i].getName());
            OutputStream outputStream1 = new BufferedOutputStream(new FileOutputStream(downloadFile1));
            ftp.retrieveFile(remoteFile1, outputStream1);
            outputStream1.close();                  

        }
    }
    ftp.disconnect();
} catch (SocketException ex) {
    ex.printStackTrace();
} catch (IOException ex) {
    ex.printStackTrace();
}   

Answer 1:

在Java SE URLConnection是insuitable从一个FTP主机检索文件列表的工作。 至于FTP,它基本上只支持FTP getput命令(检索或上传文件)。 它不支持FTP ls命令(列表文件),它基本上你要找的,更不用说其他许多人。

你需要寻找支持FTP的第三方库ls指令(还有更多)。 常用的一种是Apache的百科全书网 FtpClient 。 在它的Javadoc证明如何发出ls

FTPClient f = new FTPClient();
f.connect(server);
f.login(username, password);
FTPFile[] files = f.listFiles(directory);


Answer 2:

你可以使用Apache的百科全书FTPClient

这将允许您调用listFiles与...

public static void main(String[] args) throws IOException {
        FTPClient client = new FTPClient();
        client.connect("c64.rulez.org");
        client.enterLocalPassiveMode();
        client.login("anonymous", "");
        FTPFile[] files = client.listFiles("/pub");
        for (FTPFile file : files) {
            System.out.println(file.getName());
        }


Answer 3:

看看这个班,我发现。 它确实提升了你。 在nsftools.com类

例子:

FTPConnection ftpConnect = new FTPConnection();
ftpConnect.connect("ftp.example.com");
ftpConnect.login("user","pass");

System.out.println(ftpConnect.listFiles());


文章来源: URLConnection FTP list files