⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ftptransfer.java

📁 JAVA FTP客户端经典
💻 JAVA
字号:
package net.sf.jftp.net;import net.sf.jftp.util.*;import net.sf.jftp.config.*;import java.io.*;import java.util.*;public class FtpTransfer extends Transfer implements Runnable{      	 private String host; private int port; private String localPath; private String remotePath; private String file; private String user; private String pass; private FtpConnection con = null; private String type; public Thread runner; private int stat = 0; private boolean started = false; private ConnectionHandler handler; private Vector listeners; public FtpTransfer(String host, int port, String localPath, String remotePath, String file, String user, String pass, String type, ConnectionHandler handler, Vector listeners) { 	this.host = host;	this.port = port;	this.localPath = localPath;	this.remotePath = remotePath;	this.file = file;	this.user = user;	this.pass = pass;	this.type = type;	this.handler = handler;	this.listeners = listeners;	if(handler == null)	{		handler = new ConnectionHandler();	}	prepare(); } public void prepare() {	runner = new Thread(this);	runner.setPriority(Thread.MIN_PRIORITY);	runner.start(); } public void run() { 	//System.out.println(file); 	if(handler.getConnections().get(file) == null)	{		handler.addConnection(file, this);	}	else if(!pause) {		Log.debug("Transfer already in progress: " + file);		work = false;		stat = 2;		return;	}	boolean hasPaused = false;	while (pause) {		try {			runner.sleep(100);			if(listeners != null)				 for(int i=0; i<listeners.size(); i++) ((ConnectionListener)listeners.elementAt(i)).updateProgress(file, PAUSED, -1);			if(!work)			{			  if(listeners != null)				 for(int i=0; i<listeners.size(); i++) ((ConnectionListener)listeners.elementAt(i)).updateProgress(file, REMOVED, -1);			}		}		catch(Exception ex) {}		hasPaused = true;	} 	while(handler.getConnectionSize() >= Settings.getMaxConnections() && handler.getConnectionSize() > 0 && work)	{		try		{			stat = 4;			runner.sleep(400);			if(!hasPaused && listeners != null)				 for(int i=0; i<listeners.capacity(); i++) ((ConnectionListener)listeners.elementAt(i)).updateProgress(file, QUEUED, -1);			else break;		}		catch(Exception ex) {			ex.printStackTrace();		}	}	if(!work)	{		if(listeners != null)			 for(int i=0; i<listeners.size(); i++) ((ConnectionListener)listeners.elementAt(i)).updateProgress(file, REMOVED, -1);		handler.removeConnection(file);		stat = 3;		return;	}	started = true;	try {runner.sleep(2000);}	catch(Exception ex) {}	con = new FtpConnection(host, port, remotePath);	con.setConnectionHandler(handler);	con.setConnectionListeners(listeners);	String status = con.login(user, pass);	if(status.equals(FtpConnection.LOGIN_OK))	{		File f = new File(localPath);        	con.setLocalPath(f.getAbsolutePath());		if(type.equals(UPLOAD)) con.upload(file);		else	con.download(file);	}	if(!pause) handler.removeConnection(file); }  public int getStatus() { 	return stat; }  public boolean hasStarted() { 	return started; } public FtpConnection getFtpConnection() { 	return con; } public DataConnection getDataConnection() { 	return con.getDataConnection(); }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -