To use this library we have to download it from the official site or add maven dependency:
<dependency>
<groupId>commons-net</groupId>
<artifactId>commons-net</artifactId>
<version>3.0.1</version>
</dependency>
After this if we want to upload the file to the server we should do something like this:public static boolean uploadFile(File file, String workingDirectory, String fileName) {
FTPClient client = new FTPClient();
try {
client.connect(FTP_HOST, FTP_PORT);
// After connection attempt, we have to check the reply code to
// verify success.
int reply = client.getReplyCode();
if (!FTPReply.isPositiveCompletion(reply)) {
System.err.println("FTP server refused connection.");
return false;
}
client.login(FTP_USERNAME, FTP_PASSWORD);
client.changeWorkingDirectory(workingDirectory);
client.storeFile(fileName, new FileInputStream(file));
client.logout();
return true;
} catch (SocketException e) {
throw new RuntimeException(e);
} catch (IOException e) {
throw new RuntimeException(e);
} finally {
if (client.isConnected()) {
try {
client.disconnect();
} catch (IOException ioe) {
// swallow exception
System.err.println("Cannot disconnect from the host");
}
}
}
}
If you need to download, delete or append file it would be pretty similar.To get listing of directories you may need to enter local passive mode. Here is an example:
public static void printFiles(String workingDirectory) {
FTPClient client = new FTPClient();
try {
client.connect(FTP_HOST, FTP_PORT);
// After connection attempt, we have to check the reply code to
// verify success.
int reply = client.getReplyCode();
if (!FTPReply.isPositiveCompletion(reply)) {
System.err.println("FTP server refused connection.");
}
client.enterLocalPassiveMode();
client.login(FTP_USERNAME, FTP_PASSWORD);
FTPFile[] files = client.listFiles(workingDirectory);
for (FTPFile file : files) {
System.out.println(file.getName());
}
client.logout();
} catch (SocketException e) {
throw new RuntimeException(e);
} catch (IOException e) {
throw new RuntimeException(e);
} finally {
if (client.isConnected()) {
try {
client.disconnect();
} catch (IOException ioe) {
// swallow exception
System.err.println("Cannot disconnect from the host");
}
}
}
}
It was easy wasn't it? To learn more see the documentation.