利用Apache的commons-net实现FTP的文件读取、上传、下载、删除和移动功能
来源:互联网 发布:中信淘宝信用卡好吗 编辑:程序博客网 时间:2024/05/16 10:01
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 {
@SuppressWarnings("deprecation")
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);
}
}
}
- 利用Apache的commons-net实现FTP的文件读取、上传、下载、删除和移动功能
- 利用Apache的commons-net实现FTP的文件读取、上传、下载、删除和移动功能
- 利用Apache commons-net 包进行FTP文件和文件夹的上传与下载
- 利用Apache commons net 包实现FTP上传和下载
- commons net jar包实现文件ftp上传和下载功能 (commons net ftp 使用1)
- FTP文件的上传和下载---org.apache.commons.net.ftp.FTPClient
- FTP文件的上传和下载---org.apache.commons.net.ftp.FTPClient
- 利用commons-net-3.2.jar实现ftp文件上传功能
- org.apache.commons.net.ftp.FTPClient----根据文件名,路径检索文件 FTP上传 下载 删除文件
- [Android中级]使用Commons-net-ftp来实现FTP上传、下载的功能
- JAVA实现FTP服务器文件的上传,下载,删除功能
- 利用Apache 实现FTp的上传和下载
- 使用apache的commons-net-3.1.jar实现FTP上传
- 使用apache commons-net包实现文件ftp上传
- apache的commons-fileupload实现文件上传,下载
- 利用org.apache.commons.net.ftp包实现一个简单的ftp客户端实用类
- ftp实现文件的上传和下载
- 利用apache的Commons-fileupload和Ajax实现文件上传进度条
- SQL Server 2012 开发新特性:文件表
- Drupal 7如何实现在后台以表格,列表的形式管理网站的内容?像数据库表一样?
- 基于stun,turn ,ice协议的 SBC服务器
- Matlab优化函数linprog的使用
- Ural1517 Freedom of choice, 后缀数组,最长公共子串
- 利用Apache的commons-net实现FTP的文件读取、上传、下载、删除和移动功能
- SQL Server 2012 安全新特性:包含数据库
- Android 下拉列表 Spinner
- mysql入门篇2——常用数据字典信息
- 以太网类型码(Ethernet type codes)
- A盾 (A-Protect) 枚举进程的一个bug
- adobe flash player设置时无法点击允许的解决方法
- 2012.6辽宁省赛 Problem F
- web安全色