package com.ftp.example;
import java.io.IOException;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.List;
import com.enterprisedt.net.ftp.FTPException;
import com.enterprisedt.net.ftp.FTPFile;
import com.enterprisedt.net.ftp.FTPTransferType;
import com.enterprisedt.net.ftp.FileTransferClient;
public class FtpClientExample {
/**
*
* @param ftpip ftpIP地址
* @param user 用户
* @param pswd 密码
* @return
*/
public FileTransferClient getConnect(String ftpip, String user, String pswd) {
FileTransferClient client = new FileTransferClient();
try {
client.setRemoteHost(ftpip);
client.setUserName(user);
client.setPassword(pswd);
client.setRemotePort(Integer.parseInt("21"));
client.connect();
if (client.isConnected()) {
client.setContentType(FTPTransferType.BINARY);
System.out.println("------ftp连接成功!!");
client.getAdvancedFTPSettings().setControlEncoding("GB2312");
return client;
} else {
System.out.println("------不能登录FTP服务器,请和管理员联系!!");
return null;
}
} catch (FTPException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
/**
* 上传到ftp
* @param localhostPath 本地的文件路径
* @param ftpPath 上传存放文件的ftp路径
* @param FileName 存放到ftp文件名
* @return
* @throws FTPException
* @throws IOException
* @throws ParseException
*/
public boolean uploadFileToFtp(String localhostPath, String ftpPath,
String FileName) throws FTPException, IOException, ParseException {
String pathFile = localhostPath;
String reFile = ftpPath + FileName;
FileTransferClient client = this.getConnect("127.0.0.1", "pas", "pas");
int length = client.directoryList(ftpPath).length;
if (length <= 0) {
System.out.println("FTP文件路径错误");
return false;
}
client.uploadFile(pathFile, reFile);
client.disconnect();
return true;
}
/**
* 从ftp下载到本地
* @param ftpPath
* @param fileNames
* @param localhostPath
* @return
* @throws FTPException
* @throws IOException
* @throws ParseException
*/
public boolean downloadFileFromFtp(String ftpPath, List fileNames,
String localhostPath) throws FTPException, IOException,
ParseException {
String pathFile = localhostPath;
String reFile = ftpPath;
FileTransferClient client = this.getConnect("127.0.0.1", "pas", "pas");
int length = client.directoryList(ftpPath).length;
if (length <= 0) {
System.out.println("ftp路径" + ftpPath + "不是正确:");
return false;
}
System.out.println("可下载的文件个数" + fileNames.size());
for (int i = 0; i < fileNames.size(); i++) {
String fileName = (String) fileNames.get(i);
pathFile = pathFile + "\\" + fileName;
reFile = reFile + fileName;
System.out.println(reFile + "是否存在:" + client.exists(reFile));
if (client.exists(reFile)) {
System.out.println("pathFile--" + pathFile);
System.out.println("reFile--" + reFile);
client.downloadFile(pathFile, reFile);
client.deleteFile(reFile);
pathFile = localhostPath;
reFile = ftpPath;
continue;
}
}
client.disconnect();
return true;
}
/**
* 获取文件夹下面所有的子目录文件
*
* @param filePath
* @return
* @throws ParseException
* @throws IOException
* @throws FTPException
*/
public List getPathFile(String filePath) throws FTPException, IOException,
ParseException {
List list = new ArrayList();
FileTransferClient client = this.getConnect("127.0.0.1", "pas", "pas");
FTPFile diretoryNames[];
diretoryNames = client.directoryList(filePath);
if (diretoryNames.length > 0) // 目录下面有文件
{
for (int j = 0; j < diretoryNames.length; j++) {
if (diretoryNames[j].getName().equals(".")
|| diretoryNames[j].getName().equals(".."))
continue;
list.add(diretoryNames[j].getName());
}
}
client.disconnect();
return list;
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
FtpClientExample example = new FtpClientExample();
try {
List list = example.getPathFile("/bank/010/sqzf/");
System.out.println(list.size());
} catch (FTPException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
分享到:
相关推荐
**VB API FTP上传下载源代码详解** 在信息技术领域,FTP(File Transfer Protocol)是一种用于在网络上进行文件传输的标准协议。在VB(Visual Basic)环境中,我们可以使用API(Application Programming Interface...
在这个场景中,"一个ftp上传下载类(MFC)" 是一个使用MFC构建的类,它封装了FTP协议,使得开发者能够方便地在自己的应用中实现FTP的上传和下载功能。 FTP上传下载类的核心功能包括: 1. **连接与断开**:类应包含...
总的来说,VC++ FTP上传下载涉及网络编程、文件操作和XML处理等多个方面。开发者需要熟悉WinInet API或第三方FTP库的使用,理解FTP协议的工作原理,以及如何在C++中处理XML文件。通过这些技术,可以在VC++环境中实现...
VB6 FTP 上传 下载 源代码,用的API,不是那种控件版本,拿来就能用. VB6 FTP 上传 下载 源代码,用的API,不是那种控件版本,拿来就能用. VB6 FTP 上传 下载 源代码,用的API,不是那种控件版本,拿来就能用.
**Qt4实现FTP上传下载服务器** Qt是一个跨平台的C++图形用户界面应用程序开发框架,广泛应用于桌面和移动设备的应用程序开发。FTP(File Transfer Protocol)是互联网上用于文件传输的标准协议,允许用户从远程主机...
FTP上传下载文件
C# FTP上传下载是开发过程中常见的一项任务,它涉及到网络通信和文件操作。在C#中,我们可以利用System.Net命名空间中的FtpWebRequest和FtpWebResponse类来实现FTP(File Transfer Protocol)的功能。下面将详细介绍...
在这个“FTP上传下载文件demo”项目中,开发者使用C++编程语言在Visual Studio 2010环境下创建了一个功能完备的FTP客户端应用。这个应用能够执行基本的FTP操作,包括上传文件到远程FTP服务器、从服务器下载文件以及...
四、FTP上传下载的进阶功能 1. 递归上传/下载目录:可以遍历本地目录,逐个上传或下载文件。 2. 断点续传:如果文件较大,可以记录已传输的部分,在下次连接时继续上传或下载。 3. 多线程上传/下载:通过多线程同时...
这篇博客文章“qt ftp上传下载”探讨了如何在Qt环境中实现FTP的上传和下载功能。我们将详细解析这个主题,了解相关知识点。 首先,要实现FTP功能,你需要使用Qt库中的QFtp模块。QFtp类提供了FTP客户端的功能,可以...
Java编写的FTP上传下载工具是一种基于Java语言实现的文件传输应用程序,主要功能是与FTP(File Transfer Protocol)服务器进行交互,实现文件的上传和下载。这个工具特别之处在于它支持多用户登录,这意味着不同的...
在本文中,我们将深入探讨FTP上传下载的C#源代码实现及其相关的知识点。 一、FTP基本概念 FTP允许用户在两台计算机之间交换文件,通常涉及一个服务器(提供文件)和一个客户端(请求文件)。它使用TCP作为传输层...
### VB FTP上传下载知识点解析 #### 一、概述 在提供的代码示例中,主要涉及了使用Visual Basic(简称VB)进行FTP(File Transfer Protocol,文件传输协议)上传与下载的功能实现。FTP是一种用于在网络上进行文件...
VisualC 实效编程 99 FTP上传下载VisualC 实效编程 99 FTP上传下载VisualC 实效编程 99 FTP上传下载VisualC 实效编程 99 FTP上传下载VisualC 实效编程 99 FTP上传下载VisualC 实效编程 99 FTP上传下载VisualC 实效...
ftp上传下载 linux环境下程序 网络高级程序设计课程实验
"ftp上传下载图片" FTP(File Transfer Protocol,文件传输协议)是一种常用的网络协议,用于在网络上进行文件传输。FTP 协议允许用户在远程服务器上存储和检索文件。在这里,我们将讨论如何使用 C# 语言实现 FTP ...
本篇文章将深入探讨如何利用C#实现FTP上传和下载功能,并结合给定的"FTP上传下载demo"和"demo(upload)、FTPupload"这两个文件名,我们将具体分析其可能包含的代码示例。 首先,让我们了解FTP上传和下载的基本原理...
FTP上传下载的实现,网络编程 FTP SOCKET MFC 网络
Java基于Swing的FTP上传下载程序是一个用户界面友好、功能完备的应用,主要用于通过FTP(File Transfer Protocol)协议实现文件的上传和下载。Swing是Java提供的一个轻量级的GUI库,它允许开发者创建出美观且功能...