- 浏览: 122240 次
- 性别:
- 来自: 西安
文章分类
最新评论
-
wuruxiantu:
http://localhost:8080/blog/uplo ...
mvnForum 一个开源的BBS搭建过程 -
shansheng:
第一个for循环,没看出来原始的和反编译后的区别嘛
java class反编译后的代码还原 -
hhujsj:
顶 对我做的项目很有帮组!!!
J2EE应用:定时器 -
iRoger:
不错,写的很仔细,为什么没人顶呢
J2EE应用:定时器 -
rain16881:
很好很强大啊..边看你这..边看自己的..十分钟就搞好了一个难 ...
java class反编译后的代码还原
FTP上传,下载
来源:http://www.blogjava.net/woxingwosu/archive/2007/08/03/134311.html
最近写了一个FTP客服端的程序,可以实现上传,下载,列出文件,删除文件,重命名文件操作。
SUN也提供了FTP操作的包,但是官方建议不要使用,而且没有API文档。另外IBM和APACHE也提供了相应的FTP包,APACHE的包功能比较强大,IBM的没有用过,不知道怎样。
我把我的代码贴出来,希望和大家一起交流。
package woxingwosu;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Comparator;
import java.util.Properties;
import java.util.TreeSet;
import org.apache.commons.io.FileUtils;
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;
/**
* 其实JDK里面也有支持FTP操作的包【jre/lib下的rt.jar】,但是SUN的DOC里面并没有提供相应文档,
* 因为这里面的包,不被官方支持,建议不要使用。我们可以使用第三方提供的包apache.commons。
* apache.commons的包,都有文档,方便使用
* 另外IBM也有提供一个ftp包,我没有用过,有兴趣的可以去研究一下
* @commons-net:http://apache.mirror.phpchina.com/commons/net/binaries/commons-net-1.4.1.zip
* @jakarta-oro:http://mirror.vmmatrix.net/apache/jakarta/oro/source/jakarta-oro-2.0.8.zip
* @commons-io:http://apache.mirror.phpchina.com/commons/io/binaries/commons-io-1.3.2-bin.zip
* @author 我行我素
* @2007-08-03
*/
public class MiniFtp {
private static String username;
private static String password;
private static String ip;
private static int port;
private static Properties property=null;//配置
private static String configFile;//配置文件的路径名
private static FTPClient ftpClient=null;
private static SimpleDateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd hh:mm");
private static final String [] FILE_TYPES={"文件","目录","符号链接","未知类型"};
public static void main(String[] args) {
setConfigFile("woxingwosu.properties");//设置配置文件路径
connectServer();
listAllRemoteFiles();//列出所有文件和目录
changeWorkingDirectory("webroot");//进入文件夹webroot
listRemoteFiles("*.jsp");//列出webroot目录下所有jsp文件
setFileType(FTP.BINARY_FILE_TYPE);//设置传输二进制文件
uploadFile("woxingwosu.xml","myfile.xml");//上传文件woxingwosu.xml,重新命名为myfile.xml
renameFile("viewDetail.jsp", "newName.jsp");//将文件viewDetail.jsp改名为newName.jsp
deleteFile("UpdateData.class");//删除文件UpdateData.class
loadFile("UpdateData.java","loadFile.java");//下载文件UpdateData.java,并且重新命名为loadFile.java
closeConnect();//关闭连接
}
/**
* 上传文件
* @param localFilePath--本地文件路径
* @param newFileName--新的文件名
*/
public static void uploadFile(String localFilePath,String newFileName){
connectServer();
//上传文件
BufferedInputStream buffIn=null;
try{
buffIn=new BufferedInputStream(new FileInputStream(localFilePath));
ftpClient.storeFile(newFileName, buffIn);
}catch(Exception e){
e.printStackTrace();
}finally{
try{
if(buffIn!=null)
buffIn.close();
}catch(Exception e){
e.printStackTrace();
}
}
}
/**
* 下载文件
* @param remoteFileName --服务器上的文件名
* @param localFileName--本地文件名
*/
public static void loadFile(String remoteFileName,String localFileName){
connectServer();
//下载文件
BufferedOutputStream buffOut=null;
try{
buffOut=new BufferedOutputStream(new FileOutputStream(localFileName));
ftpClient.retrieveFile(remoteFileName, buffOut);
}catch(Exception e){
e.printStackTrace();
}finally{
try{
if(buffOut!=null)
buffOut.close();
}catch(Exception e){
e.printStackTrace();
}
}
}
/**
* 列出服务器上所有文件及目录
*/
public static void listAllRemoteFiles(){
listRemoteFiles("*");
}
/**
* 列出服务器上文件和目录
* @param regStr --匹配的正则表达式
*/
@SuppressWarnings("unchecked")
public static void listRemoteFiles(String regStr){
connectServer();
try{
FTPFile[] files=ftpClient.listFiles(regStr);
if(files==null||files.length==0)
System.out.println("There has not any file!");
else{
TreeSet<FTPFile> fileTree=new TreeSet(
new Comparator(){
//先按照文件的类型排序(倒排),然后按文件名顺序排序
public int compare(Object objFile1,Object objFile2){
if(objFile1==null)
return -1;
else if(objFile2==null)
return 1;
else{
FTPFile file1=(FTPFile)objFile1;
FTPFile file2=(FTPFile)objFile2;
if(file1.getType()!=file2.getType())
return file2.getType()-file1.getType();
else
return file1.getName().compareTo(file2.getName());
}
}
}
);
for(FTPFile file:files)
fileTree.add(file);
System.out.printf("%-35s%-10s%15s%15s\n","名称","类型","修改日期","大小");
for(FTPFile file:fileTree){
System.out.printf("%-35s%-10s%15s%15s\n",iso8859togbk(file.getName()),FILE_TYPES[file.getType()]
,dateFormat.format(file.getTimestamp().getTime()),FileUtils.byteCountToDisplaySize(file.getSize()));
}
}
}catch(Exception e){
e.printStackTrace();
}
}
/**
* 关闭连接
*/
public static void closeConnect(){
try{
if(ftpClient!=null){
ftpClient.logout();
ftpClient.disconnect();
}
}catch(Exception e){
e.printStackTrace();
}
}
/**
* 设置配置文件
* @param configFile
*/
public static void setConfigFile(String configFile) {
MiniFtp.configFile = configFile;
}
/**
* 设置传输文件的类型[文本文件或者二进制文件]
* @param fileType--BINARY_FILE_TYPE、ASCII_FILE_TYPE
*/
public static void setFileType(int fileType){
try{
connectServer();
ftpClient.setFileType(fileType);
}catch(Exception e){
e.printStackTrace();
}
}
/**
* 扩展使用
* @return
*/
protected static FTPClient getFtpClient(){
connectServer();
return ftpClient;
}
/**
* 设置参数
* @param configFile --参数的配置文件
*/
private static void setArg(String configFile){
property=new Properties();
BufferedInputStream inBuff=null;
try{
inBuff=new BufferedInputStream(new FileInputStream(configFile));
property.load(inBuff);
username=property.getProperty("username");
password=property.getProperty("password");
ip=property.getProperty("ip");
port=Integer.parseInt(property.getProperty("port"));
}catch(Exception e){
e.printStackTrace();
}finally{
try{
if(inBuff!=null)
inBuff.close();
}catch(Exception e){
e.printStackTrace();
}
}
}
/**
* 连接到服务器
*/
public static void connectServer() {
if (ftpClient == null) {
int reply;
try {
setArg(configFile);
ftpClient=new FTPClient();
ftpClient.setDefaultPort(port);
ftpClient.configure(getFtpConfig());
ftpClient.connect(ip);
ftpClient.login(username, password);
ftpClient.setDefaultPort(port);
System.out.print(ftpClient.getReplyString());
reply = ftpClient.getReplyCode();
if (!FTPReply.isPositiveCompletion(reply)) {
ftpClient.disconnect();
System.err.println("FTP server refused connection.");
}
} catch (Exception e) {
System.err.println("登录ftp服务器【"+ip+"】失败");
e.printStackTrace();
}
}
}
/**
* 进入到服务器的某个目录下
* @param directory
*/
public static void changeWorkingDirectory(String directory){
try{
connectServer();
ftpClient.changeWorkingDirectory(directory);
}catch(IOException ioe){
ioe.printStackTrace();
}
}
/**
* 返回到上一层目录
*/
public static void changeToParentDirectory(){
try{
connectServer();
ftpClient.changeToParentDirectory();
}catch(IOException ioe){
ioe.printStackTrace();
}
}
/**
* 删除文件
*/
public static void deleteFile(String filename){
try{
connectServer();
ftpClient.deleteFile(filename);
}catch(IOException ioe){
ioe.printStackTrace();
}
}
/**
* 重命名文件
* @param oldFileName --原文件名
* @param newFileName --新文件名
*/
public static void renameFile(String oldFileName,String newFileName){
try{
connectServer();
ftpClient.rename(oldFileName, newFileName);
}catch(IOException ioe){
ioe.printStackTrace();
}
}
/**
* 设置FTP客服端的配置--一般可以不设置
* @return
*/
private static FTPClientConfig getFtpConfig(){
FTPClientConfig ftpConfig=new FTPClientConfig(FTPClientConfig.SYST_UNIX);
ftpConfig.setServerLanguageCode(FTP.DEFAULT_CONTROL_ENCODING);
return ftpConfig;
}
/**
* 转码[ISO-8859-1 -> GBK]
*不同的平台需要不同的转码
* @param obj
* @return
*/
private static String iso8859togbk(Object obj){
try{
if(obj==null)
return "";
else
return new String(obj.toString().getBytes("iso-8859-1"),"GBK");
}catch(Exception e){
return "";
}
}
}
配置文件[woxingwosu.properties]
ip:192.168.168.168
username:admin
password:8008
port:21
来源:http://www.blogjava.net/woxingwosu/archive/2007/08/03/134311.html
最近写了一个FTP客服端的程序,可以实现上传,下载,列出文件,删除文件,重命名文件操作。
SUN也提供了FTP操作的包,但是官方建议不要使用,而且没有API文档。另外IBM和APACHE也提供了相应的FTP包,APACHE的包功能比较强大,IBM的没有用过,不知道怎样。
我把我的代码贴出来,希望和大家一起交流。
package woxingwosu;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Comparator;
import java.util.Properties;
import java.util.TreeSet;
import org.apache.commons.io.FileUtils;
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;
/**
* 其实JDK里面也有支持FTP操作的包【jre/lib下的rt.jar】,但是SUN的DOC里面并没有提供相应文档,
* 因为这里面的包,不被官方支持,建议不要使用。我们可以使用第三方提供的包apache.commons。
* apache.commons的包,都有文档,方便使用
* 另外IBM也有提供一个ftp包,我没有用过,有兴趣的可以去研究一下
* @commons-net:http://apache.mirror.phpchina.com/commons/net/binaries/commons-net-1.4.1.zip
* @jakarta-oro:http://mirror.vmmatrix.net/apache/jakarta/oro/source/jakarta-oro-2.0.8.zip
* @commons-io:http://apache.mirror.phpchina.com/commons/io/binaries/commons-io-1.3.2-bin.zip
* @author 我行我素
* @2007-08-03
*/
public class MiniFtp {
private static String username;
private static String password;
private static String ip;
private static int port;
private static Properties property=null;//配置
private static String configFile;//配置文件的路径名
private static FTPClient ftpClient=null;
private static SimpleDateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd hh:mm");
private static final String [] FILE_TYPES={"文件","目录","符号链接","未知类型"};
public static void main(String[] args) {
setConfigFile("woxingwosu.properties");//设置配置文件路径
connectServer();
listAllRemoteFiles();//列出所有文件和目录
changeWorkingDirectory("webroot");//进入文件夹webroot
listRemoteFiles("*.jsp");//列出webroot目录下所有jsp文件
setFileType(FTP.BINARY_FILE_TYPE);//设置传输二进制文件
uploadFile("woxingwosu.xml","myfile.xml");//上传文件woxingwosu.xml,重新命名为myfile.xml
renameFile("viewDetail.jsp", "newName.jsp");//将文件viewDetail.jsp改名为newName.jsp
deleteFile("UpdateData.class");//删除文件UpdateData.class
loadFile("UpdateData.java","loadFile.java");//下载文件UpdateData.java,并且重新命名为loadFile.java
closeConnect();//关闭连接
}
/**
* 上传文件
* @param localFilePath--本地文件路径
* @param newFileName--新的文件名
*/
public static void uploadFile(String localFilePath,String newFileName){
connectServer();
//上传文件
BufferedInputStream buffIn=null;
try{
buffIn=new BufferedInputStream(new FileInputStream(localFilePath));
ftpClient.storeFile(newFileName, buffIn);
}catch(Exception e){
e.printStackTrace();
}finally{
try{
if(buffIn!=null)
buffIn.close();
}catch(Exception e){
e.printStackTrace();
}
}
}
/**
* 下载文件
* @param remoteFileName --服务器上的文件名
* @param localFileName--本地文件名
*/
public static void loadFile(String remoteFileName,String localFileName){
connectServer();
//下载文件
BufferedOutputStream buffOut=null;
try{
buffOut=new BufferedOutputStream(new FileOutputStream(localFileName));
ftpClient.retrieveFile(remoteFileName, buffOut);
}catch(Exception e){
e.printStackTrace();
}finally{
try{
if(buffOut!=null)
buffOut.close();
}catch(Exception e){
e.printStackTrace();
}
}
}
/**
* 列出服务器上所有文件及目录
*/
public static void listAllRemoteFiles(){
listRemoteFiles("*");
}
/**
* 列出服务器上文件和目录
* @param regStr --匹配的正则表达式
*/
@SuppressWarnings("unchecked")
public static void listRemoteFiles(String regStr){
connectServer();
try{
FTPFile[] files=ftpClient.listFiles(regStr);
if(files==null||files.length==0)
System.out.println("There has not any file!");
else{
TreeSet<FTPFile> fileTree=new TreeSet(
new Comparator(){
//先按照文件的类型排序(倒排),然后按文件名顺序排序
public int compare(Object objFile1,Object objFile2){
if(objFile1==null)
return -1;
else if(objFile2==null)
return 1;
else{
FTPFile file1=(FTPFile)objFile1;
FTPFile file2=(FTPFile)objFile2;
if(file1.getType()!=file2.getType())
return file2.getType()-file1.getType();
else
return file1.getName().compareTo(file2.getName());
}
}
}
);
for(FTPFile file:files)
fileTree.add(file);
System.out.printf("%-35s%-10s%15s%15s\n","名称","类型","修改日期","大小");
for(FTPFile file:fileTree){
System.out.printf("%-35s%-10s%15s%15s\n",iso8859togbk(file.getName()),FILE_TYPES[file.getType()]
,dateFormat.format(file.getTimestamp().getTime()),FileUtils.byteCountToDisplaySize(file.getSize()));
}
}
}catch(Exception e){
e.printStackTrace();
}
}
/**
* 关闭连接
*/
public static void closeConnect(){
try{
if(ftpClient!=null){
ftpClient.logout();
ftpClient.disconnect();
}
}catch(Exception e){
e.printStackTrace();
}
}
/**
* 设置配置文件
* @param configFile
*/
public static void setConfigFile(String configFile) {
MiniFtp.configFile = configFile;
}
/**
* 设置传输文件的类型[文本文件或者二进制文件]
* @param fileType--BINARY_FILE_TYPE、ASCII_FILE_TYPE
*/
public static void setFileType(int fileType){
try{
connectServer();
ftpClient.setFileType(fileType);
}catch(Exception e){
e.printStackTrace();
}
}
/**
* 扩展使用
* @return
*/
protected static FTPClient getFtpClient(){
connectServer();
return ftpClient;
}
/**
* 设置参数
* @param configFile --参数的配置文件
*/
private static void setArg(String configFile){
property=new Properties();
BufferedInputStream inBuff=null;
try{
inBuff=new BufferedInputStream(new FileInputStream(configFile));
property.load(inBuff);
username=property.getProperty("username");
password=property.getProperty("password");
ip=property.getProperty("ip");
port=Integer.parseInt(property.getProperty("port"));
}catch(Exception e){
e.printStackTrace();
}finally{
try{
if(inBuff!=null)
inBuff.close();
}catch(Exception e){
e.printStackTrace();
}
}
}
/**
* 连接到服务器
*/
public static void connectServer() {
if (ftpClient == null) {
int reply;
try {
setArg(configFile);
ftpClient=new FTPClient();
ftpClient.setDefaultPort(port);
ftpClient.configure(getFtpConfig());
ftpClient.connect(ip);
ftpClient.login(username, password);
ftpClient.setDefaultPort(port);
System.out.print(ftpClient.getReplyString());
reply = ftpClient.getReplyCode();
if (!FTPReply.isPositiveCompletion(reply)) {
ftpClient.disconnect();
System.err.println("FTP server refused connection.");
}
} catch (Exception e) {
System.err.println("登录ftp服务器【"+ip+"】失败");
e.printStackTrace();
}
}
}
/**
* 进入到服务器的某个目录下
* @param directory
*/
public static void changeWorkingDirectory(String directory){
try{
connectServer();
ftpClient.changeWorkingDirectory(directory);
}catch(IOException ioe){
ioe.printStackTrace();
}
}
/**
* 返回到上一层目录
*/
public static void changeToParentDirectory(){
try{
connectServer();
ftpClient.changeToParentDirectory();
}catch(IOException ioe){
ioe.printStackTrace();
}
}
/**
* 删除文件
*/
public static void deleteFile(String filename){
try{
connectServer();
ftpClient.deleteFile(filename);
}catch(IOException ioe){
ioe.printStackTrace();
}
}
/**
* 重命名文件
* @param oldFileName --原文件名
* @param newFileName --新文件名
*/
public static void renameFile(String oldFileName,String newFileName){
try{
connectServer();
ftpClient.rename(oldFileName, newFileName);
}catch(IOException ioe){
ioe.printStackTrace();
}
}
/**
* 设置FTP客服端的配置--一般可以不设置
* @return
*/
private static FTPClientConfig getFtpConfig(){
FTPClientConfig ftpConfig=new FTPClientConfig(FTPClientConfig.SYST_UNIX);
ftpConfig.setServerLanguageCode(FTP.DEFAULT_CONTROL_ENCODING);
return ftpConfig;
}
/**
* 转码[ISO-8859-1 -> GBK]
*不同的平台需要不同的转码
* @param obj
* @return
*/
private static String iso8859togbk(Object obj){
try{
if(obj==null)
return "";
else
return new String(obj.toString().getBytes("iso-8859-1"),"GBK");
}catch(Exception e){
return "";
}
}
}
配置文件[woxingwosu.properties]
ip:192.168.168.168
username:admin
password:8008
port:21
发表评论
-
极点五笔的五笔拼音输入模式,很喜欢
2012-09-09 01:15 987下载附件: -
C++让计算机自动重启
2010-10-10 01:31 1028转自:http://www.yuloo.com/jsjks/ ... -
VBA实例教程
2010-07-02 02:13 1356学习VBA -
GOOGLE版的金山
2010-06-29 22:14 837GOOGLE版的金山相当不错,界面漂亮,运行速度快,用户体验非 ... -
FTP主动模式及被动模式
2009-06-26 15:27 2004FTP主动模式及被动模式 ... -
CVSNT在Windows下的安装和使用
2009-06-17 15:54 1215CVSNT在Windows下的安装和 ... -
Dom4j的使用
2009-03-14 23:00 726文章来源:http://xhy0422.ite ... -
java class反编译后的代码还原
2009-01-08 11:03 5579文章来源:http://blog.csdn.net/z3h/a ... -
EXT学习资料
2008-12-04 12:32 1432无论你是Ext库的新手, ... -
Maven使用手册
2008-12-03 13:28 1506来自:http://www.jieesoft.com/ ... -
windows批处理中符号的作用
2008-12-03 13:27 1136发表时间: 2007-12-27 13:48 ... -
将Java的class文件转为EXE的八种方法
2008-12-03 13:26 906将Java的class文件转为EXE的八种方法 文章来源:ht ... -
log4j配置文件基本含义说明
2008-12-03 13:24 989log4j配置文件基本含义说明 文章来源:http://www ... -
Commons-logging + Log4j 入门指南
2008-12-03 13:23 1939一 :为什么同时使用commons-logging和Log4j ... -
国家语言代码i18n
2008-12-03 13:23 2572Locale 语言 国家 da_DK 丹麦语 丹麦 ... -
用JAVA访问共享文件系统
2008-12-03 13:19 1474在Microsoft 网 络 系 统 ... -
如何利用数据库控制Serv-U的用户
2008-12-03 13:18 1435如何利用数据库控制Serv-U的用户 作者:未知 文章来源 ... -
关于SAX,DOM,JAXP,JDOM,DOM4J的一些理解
2008-12-03 13:12 2365作者:renyangok 处出: ... -
Word模板的制作方法和内容定位识别技术
2008-12-03 13:03 5844blueski推荐 [2006-11-1] 出处:计算机与信息 ... -
java中通过jacob调用word方法
2008-12-03 13:01 1119java中通过jacob调用word方法 public st ...
相关推荐
**VB API FTP上传下载源代码详解** 在信息技术领域,FTP(File Transfer Protocol)是一种用于在网络上进行文件传输的标准协议。在VB(Visual Basic)环境中,我们可以使用API(Application Programming Interface...
在这个场景中,"一个ftp上传下载类(MFC)" 是一个使用MFC构建的类,它封装了FTP协议,使得开发者能够方便地在自己的应用中实现FTP的上传和下载功能。 FTP上传下载类的核心功能包括: 1. **连接与断开**:类应包含...
FTP上传下载文件
在VC++中实现FTP上传和下载功能,开发者通常会利用WinInet库或第三方FTP库。 首先,让我们深入了解一下FTP上传。FTP上传是指将本地计算机上的文件发送到FTP服务器的过程。在VC++中,可以使用WinInet API来实现这一...
**Qt4实现FTP上传下载服务器** Qt是一个跨平台的C++图形用户界面应用程序开发框架,广泛应用于桌面和移动设备的应用程序开发。FTP(File Transfer Protocol)是互联网上用于文件传输的标准协议,允许用户从远程主机...
VB6 FTP 上传 下载 源代码,用的API,不是那种控件版本,拿来就能用. VB6 FTP 上传 下载 源代码,用的API,不是那种控件版本,拿来就能用. VB6 FTP 上传 下载 源代码,用的API,不是那种控件版本,拿来就能用.
C# FTP上传下载是开发过程中常见的一项任务,它涉及到网络通信和文件操作。在C#中,我们可以利用System.Net命名空间中的FtpWebRequest和FtpWebResponse类来实现FTP(File Transfer Protocol)的功能。下面将详细介绍...
在这个“FTP上传下载文件demo”项目中,开发者使用C++编程语言在Visual Studio 2010环境下创建了一个功能完备的FTP客户端应用。这个应用能够执行基本的FTP操作,包括上传文件到远程FTP服务器、从服务器下载文件以及...
### VB FTP上传下载知识点解析 #### 一、概述 在提供的代码示例中,主要涉及了使用Visual Basic(简称VB)进行FTP(File Transfer Protocol,文件传输协议)上传与下载的功能实现。FTP是一种用于在网络上进行文件...
这篇博客文章“qt ftp上传下载”探讨了如何在Qt环境中实现FTP的上传和下载功能。我们将详细解析这个主题,了解相关知识点。 首先,要实现FTP功能,你需要使用Qt库中的QFtp模块。QFtp类提供了FTP客户端的功能,可以...
四、FTP上传下载的进阶功能 1. 递归上传/下载目录:可以遍历本地目录,逐个上传或下载文件。 2. 断点续传:如果文件较大,可以记录已传输的部分,在下次连接时继续上传或下载。 3. 多线程上传/下载:通过多线程同时...
在本文中,我们将深入探讨FTP上传下载的C#源代码实现及其相关的知识点。 一、FTP基本概念 FTP允许用户在两台计算机之间交换文件,通常涉及一个服务器(提供文件)和一个客户端(请求文件)。它使用TCP作为传输层...
VisualC 实效编程 99 FTP上传下载VisualC 实效编程 99 FTP上传下载VisualC 实效编程 99 FTP上传下载VisualC 实效编程 99 FTP上传下载VisualC 实效编程 99 FTP上传下载VisualC 实效编程 99 FTP上传下载VisualC 实效...
Java编写的FTP上传下载工具是一种基于Java语言实现的文件传输应用程序,主要功能是与FTP(File Transfer Protocol)服务器进行交互,实现文件的上传和下载。这个工具特别之处在于它支持多用户登录,这意味着不同的...
"ftp上传下载图片" FTP(File Transfer Protocol,文件传输协议)是一种常用的网络协议,用于在网络上进行文件传输。FTP 协议允许用户在远程服务器上存储和检索文件。在这里,我们将讨论如何使用 C# 语言实现 FTP ...
本篇文章将深入探讨如何利用C#实现FTP上传和下载功能,并结合给定的"FTP上传下载demo"和"demo(upload)、FTPupload"这两个文件名,我们将具体分析其可能包含的代码示例。 首先,让我们了解FTP上传和下载的基本原理...
ftp上传下载 linux环境下程序 网络高级程序设计课程实验
下面,我们将讨论实现FTP上传和下载的关键步骤、相关库以及代码示例。 首先,为了在C++中实现FTP功能,我们需要一个库来处理网络通信和FTP协议。常用的C++ FTP库有libcurl、ftpclient、poco等。在这个例子中,我们...
Java基于Swing的FTP上传下载程序是一个用户界面友好、功能完备的应用,主要用于通过FTP(File Transfer Protocol)协议实现文件的上传和下载。Swing是Java提供的一个轻量级的GUI库,它允许开发者创建出美观且功能...