KS1*_*KS1 8 java ftp file urlconnection
URL url = new URL("ftp://user:pass@ftp.example.com/thefolder/");
URLConnection connection = url.openConnection();
...
// List files in folder...
Run Code Online (Sandbox Code Playgroud)
使用类似上面的内容,我想知道如何获取文件夹'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();
}
Run Code Online (Sandbox Code Playgroud)
Java SE URLConnection不可用于从FTP主机检索文件列表.至于FTP,它基本上只支持FTP get或put命令(检索或上传文件).它不支持ls您基本上寻找的FTP 命令(列表文件),更不用说许多其他命令了.
您需要查找支持FTP ls命令的第三方库(以及更多).一个常用的是Apache Commons Net FtpClient.在其javadoc中演示了如何发布ls:
FTPClient f = new FTPClient();
f.connect(server);
f.login(username, password);
FTPFile[] files = f.listFiles(directory);
Run Code Online (Sandbox Code Playgroud)
这将允许您使用...调用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());
}
Run Code Online (Sandbox Code Playgroud)