/***
* Ftp 文件下载类
* @author ***
*/
public class FtpDownload {
/***
* 获取 FtpClient
* @param refID
* @return
*/
public FtpClient connectServer() {
FtpClient ftpClient = new FtpClient();
FtpInfo ftpInfo = getFtpInfo();
try {
if (ftpInfo.getPort() != -1) {
ftpClient.openServer(ftpInfo.getHost(), ftpInfo.getPort());
} else {
ftpClient.openServer(ftpInfo.getHost());
}
ftpClient.login(ftpInfo.getFtpUser(), ftpInfo.getFtpPwd());
} catch (Exception e) {
System.out.print("clientFtp exception"+e.getMessage());
}
return ftpClient;
}
/**
* 获取ftp信息
* @param path
* @return
*/
public FtpInfo getFtpInfo(String path) {
//读取 ftpServer.properties 文件的 value 文件目录在 classes 目录下
ResourceBundle resource = ResourceBundle.getBundle("ftpServer");
FtpInfo ftp = new FtpInfo();
ftp.setHost(resource.getString("middle_ftpPath"));
ftp.setFtpUser(resource.getString("middle_user"));
ftp.setFtpPwd(resource.getString("middle_password"));
ftp.setPort(21);
ftp.setDirName(resource.getString("middle_dir"));
return ftp;
}
/**
* 下载文件
* @param ftpClient
* @param remotePath
* @param localPath
* @param filename
* @return
* @throws Exception
*/
public int downloadFile(FtpClient ftpClient, String remotePath,
String localPath, String filename) throws Exception {
int isExistInt = 0;
try {
//目录切换到远程的
if (remotePath.length() != 0) {
try {
ftpClient.cd(remotePath);
} catch (Exception ex) {
System.out.print("ftpClient.cd(remotePath) Exception:"
+ ex.getMessage());
}
}
ftpClient.binary();
//获得文件 的输入 流
TelnetInputStream is = ftpClient.get(filename);
//创建磁盘目录
File file = new File(localPath);
if (!file.exists()) {
file.mkdirs();
}
//File file_out = new File(localPath + File.separator + filename);
//在创建的目录中新建个文件
File file_out = new File(file, filename);
FileOutputStream os = new FileOutputStream(file_out);
byte[] bytes = new byte[1024];
int c;
while ((c = is.read(bytes)) != -1) {
os.write(bytes, 0, c);
}
is.close();
os.close();
isExistInt = 1;
} catch (Exception ex) {
System.out.print("download FTP file exception"+e.getMessage());
}
return isExistInt;
}
}
[color=olive][/color]
分享到:
相关推荐
通过这个过程,你可以构建起Delphi应用连接FTP服务器并读取文件数据的能力,这对于实现接口或者数据同步等功能非常有用。在实际开发中,还需要考虑错误处理、重试机制以及安全性问题,比如使用SSL/TLS加密连接来增强...
可以使用结构体存储这些信息,并通过读取配置文件进行初始化。 7. 自动上传 自动上传功能可能涉及到定时任务或者事件触发,例如监控特定目录的变化,当有新文件时自动触发FTP上传。可以使用inotify或WinAPI的...
总结来说,libcurl为C++开发者提供了一种高效、灵活的方式去实现FTP的上传和下载,使得在处理文件传输任务时,无需关心底层协议的细节。通过理解和应用这些知识点,你可以构建出可靠的FTP客户端程序。记得在实际使用...
1. **连接FTP服务器**:通过`connect`方法指定服务器IP地址。 2. **登录FTP服务器**:使用`login`方法进行用户认证。 3. **更改工作目录**:使用`changeWorkingDirectory`方法切换到指定目录。 4. **设置FTP参数**:...
此方法接受远程文件路径作为参数,返回一个OutputStream,我们可以将其连接到本地文件的OutputStream上,实现数据的读取和写入。FTPUtil或FTPBean中可能会提供downloadFile()方法,用于处理这一过程。 4. Apache ...
在这个场景中,我们使用FTP协议来实现在远程服务器上上传和下载文件的功能。C#和Asp.NET是开发此类应用的主要编程语言和技术框架。 1. **FTP基本概念**: FTP允许用户在本地计算机和远程FTP服务器之间交换文件。它...
- 通常,下载文件会涉及`FTPClient.retrieveFileStream()`或`FTPClient.retrieveFile()`方法,将远程文件流读取并写入本地文件。但这段代码中没有展示具体的下载逻辑,只设置了相关变量和进行了基本的FTP操作。 9....
综上所述,Android通过FTPClient库可以实现FTP连接、文件上传和下载。开发者需理解FTP的基本概念,学会配置FTPClient,处理文件流,并对可能出现的异常进行妥善处理。通过这些步骤,用户可以在移动设备上与远程...
本教程将详细讲解如何使用C#在ASP.NET环境中实现FTP远程下载文件到指定的本地盘符。 首先,要进行FTP远程下载,你需要引入`System.Net`命名空间,它包含`FtpWebRequest`和`FtpWebResponse`类,这两个类是FTP操作的...
- 下载文件则需要从FTP服务器读取文件并写入到本地。示例如下: ```java OutputStream outputStream = new FileOutputStream("local_save_path"); boolean success = ftpClient.retrieveFile("remote_file_path...
在FTP操作中,可能会遇到各种异常情况,如连接失败、文件传输错误等,此时可以通过读取此属性文件获取相应的错误信息。 下面是一个简单的FTP文件上传的步骤: 1. **创建FTPClient对象**:`FTPClient ftp = new ...
2. **读取配置文件**: ```csharp XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(ApplicationStartPath + "\\KcFtpServer.xml"); // 解密并获取FTP服务器的相关信息 ftpServerIP = Security....
文件上传涉及到选择远程目录、读取本地文件并将其写入FTP服务器。以下是一个简单的文件上传示例: ```java File localFile = new File("/path/to/local/file.txt"); String remoteFilePath = "/path/to/remote/file...
本主题聚焦于使用C#编程语言实现FTP服务器下载文件的功能,并结合浏览器进行操作。以下将详细介绍相关知识点: 1. FTP协议:FTP是TCP/IP协议族的一部分,允许用户在两台计算机之间上传、下载文件。它依赖于两个独立...
下载文件则相反,需要从服务器读取文件并写入本地系统。使用缓冲流可以提高文件读写效率。 5. 错误处理与资源管理:在进行FTP操作时,必须考虑异常处理,如网络中断、文件不存在等问题。在完成操作后,记得关闭FTP...
5. **文件流操作**:在上传和下载文件时,需要使用文件流对象,如`FileStream`,来读取或写入本地文件,并与FTP服务器的数据通道进行交互。 6. **异常处理**:FTP操作可能会遇到各种问题,如网络中断、权限不足等,...
- **从服务器端下载文件**: 用户可以从FTP服务器下载文件至本地计算机。 - **在服务器端创建目录**: 用户能够在FTP服务器上创建新的目录。 **1.3 系统流程图** 系统的流程通常包括以下几个步骤: 1. 用户登录FTP...
FTP文件同步的核心在于通过FTP协议连接到远程服务器,读取服务器上的文件列表,比较本地文件与服务器文件的差异,然后进行上传或下载操作以保持文件的一致性。以下是一些关键知识点: 1. **FTP连接**:使用C#的`...
FTP上传功能通常包括创建连接、登录FTP服务器、指定本地和远程文件路径、上传文件以及断开连接。在VB.NET中,这可以通过实例化FtpWebRequest对象并设置其属性来实现,如Method(设置为"STOR"用于上传)、Credentials...
首先需要在项目中引入`ftp4j`的依赖,接着创建`FTPClient`对象,配置服务器信息,建立连接,然后执行相应的FTP命令,如登录、改变目录、列出文件、下载文件等。 4. FTPClient: `FTPClient`是`ftp4j`中的核心类,...