利用Apache的commons-net实现FTP的文件读取、上传、下载、删除和移动功能
2012-04-17 15:04
1096 查看
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPClientConfig;
import org.apache.commons.net.ftp.FTPFile;
import org.apache.commons.net.ftp.FTPReply;
public class FtpTest {
public static void main(String[] args) {
String server = "192.168.1.103";
String user = "admin";
String password = "pass";
boolean error = false;
FTPClient ftp = new FTPClient();
ftp.setControlEncoding("UTF-8"); // 中文支持
ftp.setConnectTimeout(5000); // 超时设置
try {
int reply;
ftp.connect(server);
System.out.println("Connected to " + server + ".");
System.out.println(ftp.getReplyString());
// After connection attempt, you should check the reply code to
// verify success.
reply = ftp.getReplyCode();
if (!FTPReply.isPositiveCompletion(reply)) {
ftp.disconnect();
System.err.println("FTP server refused connection.");
System.exit(1);
}
ftp.login(user, password);
System.out.println("Login by " + user + ".");
System.out.println(ftp.getReplyString());
reply = ftp.getReplyCode();
if (!FTPReply.isPositiveCompletion(reply)) {
ftp.disconnect();
System.err.println("Invalid username or password.");
System.exit(1);
} else {
System.out.println(ftp.getSystemName());
FTPClientConfig conf = new FTPClientConfig(ftp.getSystemName()
.split(" ")[0]);
conf.setServerLanguageCode("zh");
ftp.configure(conf);
ftp.enterLocalPassiveMode(); // Use passive mode as default
// because most of us are behind
// firewalls these days.
ftp.setFileType(FTP.BINARY_FILE_TYPE); // 二进制文件支持
}
// transfer files
FTPFile[] files = ftp.listFiles("/Upload");
ftp.changeWorkingDirectory("/Upload");
for (FTPFile file : files) {
String fileName = file.getName();
System.out.println((file.isDirectory() ? "Folder" : (file
.isFile() ? "File" : ""))
+ " - " + fileName);
if (file.isFile()) {
// 读取ftp上指定文件的数据
InputStream is = ftp.retrieveFileStream(fileName);
if (is != null) {
BufferedReader reader = new BufferedReader(
new InputStreamReader(is));
String line;
while ((line = reader.readLine()) != null) {
System.out.println("\t" + line);
}
reader.close();
is.close();
System.out.println(ftp.getReplyString());
// Must call completePendingCommand() to finish command.
if (!ftp.completePendingCommand()) {
ftp.logout();
ftp.disconnect();
System.err.println("File transfer failed.");
System.exit(1);
}
}
// 下载ftp上指定文件到本地
File localFile = new File("F:" + File.separator + fileName);
boolean downloaded = ftp.retrieveFile(fileName,
new FileOutputStream(localFile));
System.out.println(downloaded ? "File " + fileName
+ " download success" : "File " + fileName
+ " download failure");
System.out.println(ftp.getReplyString());
// 删除ftp上指定文件
boolean deleted = ftp.deleteFile(fileName);
System.out.println(deleted ? "File " + fileName
+ " delete success" : "File " + fileName
+ " delete failure");
System.out.println(ftp.getReplyString());
System.out.println("--------------------------------");
}
}
// 上传本地文件到ftp指定目录
String uploadFileName = "HFSetup5.4.4.422.exe";
File uploadFile = new File("F:" + File.separator + "TDDOWNLOAD"
+ File.separator + uploadFileName);
boolean uploaded = ftp.storeFile(uploadFileName,
new FileInputStream(uploadFile));
System.out.println(uploaded ? "File " + uploadFileName
+ " upload success" : "File " + uploadFileName
+ " upload failure");
System.out.println(ftp.getReplyString());
// 在ftp上更改文件名、移动文件
boolean moved = ftp.rename("/Upload" + File.separator
+ uploadFileName, "/Success" + File.separator
+ uploadFileName);
System.out.println(moved ? "File " + uploadFileName
+ " move success" : "File " + uploadFileName
+ " move failure");
System.out.println(ftp.getReplyString());
} catch (Exception e) {
error = true;
e.printStackTrace();
} finally {
if (ftp.isConnected()) {
try {
ftp.disconnect();
} catch (IOException e) {
// do nothing
}
}
System.exit(error ? 1 : 0);
}
}
}
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPClientConfig;
import org.apache.commons.net.ftp.FTPFile;
import org.apache.commons.net.ftp.FTPReply;
public class FtpTest {
public static void main(String[] args) {
String server = "192.168.1.103";
String user = "admin";
String password = "pass";
boolean error = false;
FTPClient ftp = new FTPClient();
ftp.setControlEncoding("UTF-8"); // 中文支持
ftp.setConnectTimeout(5000); // 超时设置
try {
int reply;
ftp.connect(server);
System.out.println("Connected to " + server + ".");
System.out.println(ftp.getReplyString());
// After connection attempt, you should check the reply code to
// verify success.
reply = ftp.getReplyCode();
if (!FTPReply.isPositiveCompletion(reply)) {
ftp.disconnect();
System.err.println("FTP server refused connection.");
System.exit(1);
}
ftp.login(user, password);
System.out.println("Login by " + user + ".");
System.out.println(ftp.getReplyString());
reply = ftp.getReplyCode();
if (!FTPReply.isPositiveCompletion(reply)) {
ftp.disconnect();
System.err.println("Invalid username or password.");
System.exit(1);
} else {
System.out.println(ftp.getSystemName());
FTPClientConfig conf = new FTPClientConfig(ftp.getSystemName()
.split(" ")[0]);
conf.setServerLanguageCode("zh");
ftp.configure(conf);
ftp.enterLocalPassiveMode(); // Use passive mode as default
// because most of us are behind
// firewalls these days.
ftp.setFileType(FTP.BINARY_FILE_TYPE); // 二进制文件支持
}
// transfer files
FTPFile[] files = ftp.listFiles("/Upload");
ftp.changeWorkingDirectory("/Upload");
for (FTPFile file : files) {
String fileName = file.getName();
System.out.println((file.isDirectory() ? "Folder" : (file
.isFile() ? "File" : ""))
+ " - " + fileName);
if (file.isFile()) {
// 读取ftp上指定文件的数据
InputStream is = ftp.retrieveFileStream(fileName);
if (is != null) {
BufferedReader reader = new BufferedReader(
new InputStreamReader(is));
String line;
while ((line = reader.readLine()) != null) {
System.out.println("\t" + line);
}
reader.close();
is.close();
System.out.println(ftp.getReplyString());
// Must call completePendingCommand() to finish command.
if (!ftp.completePendingCommand()) {
ftp.logout();
ftp.disconnect();
System.err.println("File transfer failed.");
System.exit(1);
}
}
// 下载ftp上指定文件到本地
File localFile = new File("F:" + File.separator + fileName);
boolean downloaded = ftp.retrieveFile(fileName,
new FileOutputStream(localFile));
System.out.println(downloaded ? "File " + fileName
+ " download success" : "File " + fileName
+ " download failure");
System.out.println(ftp.getReplyString());
// 删除ftp上指定文件
boolean deleted = ftp.deleteFile(fileName);
System.out.println(deleted ? "File " + fileName
+ " delete success" : "File " + fileName
+ " delete failure");
System.out.println(ftp.getReplyString());
System.out.println("--------------------------------");
}
}
// 上传本地文件到ftp指定目录
String uploadFileName = "HFSetup5.4.4.422.exe";
File uploadFile = new File("F:" + File.separator + "TDDOWNLOAD"
+ File.separator + uploadFileName);
boolean uploaded = ftp.storeFile(uploadFileName,
new FileInputStream(uploadFile));
System.out.println(uploaded ? "File " + uploadFileName
+ " upload success" : "File " + uploadFileName
+ " upload failure");
System.out.println(ftp.getReplyString());
// 在ftp上更改文件名、移动文件
boolean moved = ftp.rename("/Upload" + File.separator
+ uploadFileName, "/Success" + File.separator
+ uploadFileName);
System.out.println(moved ? "File " + uploadFileName
+ " move success" : "File " + uploadFileName
+ " move failure");
System.out.println(ftp.getReplyString());
} catch (Exception e) {
error = true;
e.printStackTrace();
} finally {
if (ftp.isConnected()) {
try {
ftp.disconnect();
} catch (IOException e) {
// do nothing
}
}
System.exit(error ? 1 : 0);
}
}
}
相关文章推荐
- org.apache.commons.net.ftp.FTPClient----根据文件名,路径检索文件 FTP上传 下载 删除文件
- org.apache.commons.net.ftp.FTPClient上传、下载、修改文件等功能
- Java利用apache ftp工具实现文件上传下载和删除功能
- 利用commons-net-3.2.jar实现ftp文件上传功能
- Android开发 之 利用commons-net-3.0.1.jar包实现FTP上传下载功能
- java基于Apache FTP实现文件上传、下载、修改文件名、删除
- 【FTP】org.apache.commons.net.ftp.FTPClient实现复杂的上传下载,操作目录,处理编码
- JAVA实现FTP服务器文件的上传,下载,删除功能
- Java 利用Apache Commons Net 实现 FTP文件上传下载
- 使用.net FtpWebRequest 实现FTP常用功能 上传 下载 获取文件列表 移动 切换目录 改名
- [Android中级]使用Commons-net-ftp来实现FTP上传、下载的功能
- 基于apache的commons-net-3.3.jar的 ftp java代码上传下载文件
- Microsoft .NET Framework 2.0对文件传输协议(FTP)操作(上传,下载,新建,删除,FTP间传送文件等)实现汇总1
- 【FTP】使用org.apache.commons.net.ftp.FTPClient 实现FTP的上传下载
- Microsoft .NET Framework 2.0对文件传输协议(FTP)操作(上传,下载,新建,删除,FTP间传送文件等)实现汇总1
- Microsoft .NET Framework 2.0对文件传输协议(FTP)操作(上传,下载,新建,删除,FTP间传送文件等)实现汇总
- 利用FTPClient类实现文件的上传下载功能
- apache 的 commons-net-3.3.jar 的 ftp java代码上传下载文件
- apache-commons-net Ftp 进行文件、文件夹的上传下载及日志的输出
- Microsoft .NET Framework 2.0对文件传输协议(FTP)操作(上传,下载,新建,删除,FTP间传送文件等)实现汇总1