可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
I have written the code which downloads the file from FTP server. Since I have my FTP server locally and I want to access like "ftp://localhost/alfresco". It was alfresco's FTP.
I have the following Code
public class FtpTransfer { public static final void main(String[] args) { FTPClient ftp = new FTPClient(); FileOutputStream br = null; try { ftp.connect("ftp://localhost/alfresco"); ftp.login("admin", "admin"); String file = "KPUB//Admin//TMM//Pickup//TMM_TO_ARTESIA_06152010220246.xml"; br = new FileOutputStream("file"); ftp.retrieveFile("/"+file, br); System.out.println("Downloaded..."); } catch(IOException exception) { System.out.println("Error : "+exception); } } }
The following exception occurs.
Error : java.net.UnknownHostException: ftp://localhost/alfresco
Please let me know how should I give the FTP Host Address?
回答1:
Here is an example demonstrating connection to a server, changing present working directory, listing files in a directory and downloading a file to some specified directory.
package test; import java.io.FileOutputStream; import java.io.IOException; import java.net.SocketException; import org.apache.commons.net.ftp.FTPClient; import org.apache.commons.net.ftp.FTPFile; public class FtpTransfer { public static final void main(String[] args) throws SocketException, IOException { FTPClient ftp = new FTPClient(); ftp.connect("ftp.somedomain.com"); // or "localhost" in your case System.out.println("login: "+ftp.login("username", "pass")); ftp.changeWorkingDirectory("folder/subfolder/"); // list the files of the current directory FTPFile[] files = ftp.listFiles(); System.out.println("Listed "+files.length+" files."); for(FTPFile file : files) { System.out.println(file.getName()); } // lets pretend there is a JPEG image in the present folder that we want to copy to the desktop (on a windows machine) ftp.setFileType(FTPClient.BINARY_FILE_TYPE); // don't forget to change to binary mode! or you will have a scrambled image! FileOutputStream br = new FileOutputStream("C:\\Documents and Settings\\casonkl\\Desktop\\my_downloaded_image_new_name.jpg"); ftp.retrieveFile("name_of_image_on_server.jpg", br); ftp.disconnect(); } }
回答2:
FTPClient f = new FTPClient(); f.connect("localhost"); f.login(username, password); FTPFile[] files = listFiles(directory);
Also See
回答3:
Try remove protocol ("ftp://") from your url.
And please, look at the example.
回答4:
The FTPClient.connect() method takes the name of a server, not a URL. Try:
ftp.connect("localhost");
Also, you may need to put alfresco somewhere else. If it's part of the file path,
String file = "alfresco/KPUB//Admin//TMM//Pickup//TMM_TO_ARTESIA_06152010220246.xml";