URLConnection FTP列表文件
URL url = new URL("ftp://user:pass@ftp.example.com/thefolder/"); URLConnection connection = url.openConnection(); ... // List files in folder...
使用类似上面的内容,我想知道如何获取文件夹’thefolder’中的文件列表?
嗨,大家好,
继这个原始问题之后,我将这个简单的FTP连接放在一起,这种连接都很有效。 它可以查看/ live / conf / location中的所有文件,并将它们全部复制到local / conf / location。 唯一的问题是,它正在复制文件,但没有内容。它们都是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(); }
Java SE URLConnection
对于从FTP主机检索文件列表的工作是不可或缺的。 至于FTP,它基本上只支持FTP get
或put
命令(检索或上传文件)。 它不支持您基本上寻找的FTP ls
命令(列表文件),更不用说许多其他命令了。
您需要查找支持FTP ls
命令的第三方库(以及更多)。 常用的是Apache Commons Net FtpClient
。 在其javadoc中演示了如何发出ls
:
FTPClient f = new FTPClient(); f.connect(server); f.login(username, password); FTPFile[] files = f.listFiles(directory);
您可以使用Apache commons 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()); }
查看我找到的这门课程。 这对你来说很有帮助。 nsftools.com上的课程
示例是:
FTPConnection ftpConnect = new FTPConnection(); ftpConnect.connect("ftp.example.com"); ftpConnect.login("user","pass"); System.out.println(ftpConnect.listFiles());