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++环境中实现...
**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环境下程序 网络高级程序设计课程实验
总的来说,实现C++中VS2017下的FTP上传下载功能,需要理解libcurl库的工作原理,熟悉其API接口,并正确配置项目以链接和使用libcurl。通过编写和调试代码,可以创建出满足需求的FTP客户端应用程序。
"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库,它允许开发者创建出美观且功能...