亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mediator.java

?? 基于java設計商業化的的FTP工具的部分代碼
?? JAVA
字號:
package com.yaofahua.jleapftp;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.net.SocketException;
import java.util.Vector;

import javax.swing.JTextField;

import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;

import com.yaofahua.jleapftp.ui.JLeapList;
import com.yaofahua.jleapftp.ui.JLeapTextArea;
import com.yaofahua.jleapftp.ui.MainFrame;
import com.yaofahua.jleapftp.ui.MainMenu;
import com.yaofahua.jleapftp.ui.MainToolBar;
import com.yaofahua.jleapftp.ui.QuickBar;
import com.yaofahua.jleapftp.ui.table.JLeapTable;
import com.yaofahua.jleapftp.ui.table.JLeapTableModel;

public class Mediator {
    
    public MainFrame mainFrame;
    
    JLeapTable remoteTable;
    JLeapTableModel remoteModel;
    String remoteDir;
    String remoteDir_tmp;
    
    JLeapTable localTable;
    JLeapTableModel localModel;
    String localDir = System.getProperty("user.dir")+"\\";
    String localDir_tmp;
    
    //FtpMotion ftp;
    QuickBar quickBar;
    MainToolBar toolBar;
    JLeapTextArea cmdArea;
    MainMenu mainMenu;
    JLeapList list;
    
    Vector queue = new Vector();
    
    int i = 10;
    
    
    public FTPClient ftp = new FTPClient();
    
    
    
    public Mediator() {
        //ftp = new FtpMotion(this);
        
    }
    
    public void addProtocolCommandListener() {
        ftp.addProtocolCommandListener(cmdArea);
    }
    
//	mediator.toLocalParentDirectory();
//} else {
//	mediator.toLocalDirectory(f.getName());
//    
    //雙擊文件時,加入下載隊列并開始下載
    public void doubleClickDownload(String file) {
    	addFileToQueue(file);
    	download();
    }
    
    public void addFileToQueue(String file) {
    	//String item = remoteDir+file+" --> "+localDir;
    	QueueItem item = new QueueItem(localDir+file,remoteDir+file);
    	queue.add(item);
    	list.setListData(toLocalQueue());
    	//list.getModel().
    	//list.item);
    }
    
    public void addDirToQueue(String dir) {
    	QueueItem item = new QueueItem(localDir+dir+"\\",remoteDir+dir+"/");
    	queue.add(item);
    	list.setListData(toLocalQueue());   	
    }
    
    public Vector toLocalQueue() {
    	Vector queue = new Vector();
    		//this.list.clear();
    		for(int i=0;i<this.queue.size();i++) {
    			QueueItem item = (QueueItem)this.queue.elementAt(i);
    			queue.add(Utilities.toLocaleString(item.toString()));
    		}
    		return queue;

    }
   
    //新線程開始下載
    public void download() {
    	//ftp.         
    	Thread t = new Thread() {
    		public void run() {
    			localDir_tmp = localDir;
    			remoteDir_tmp = remoteDir;
    			
    			while( !queue.isEmpty() ) {
    	    		QueueItem item = (QueueItem)queue.elementAt(0);
    	    		if( item.isDirectory() ) {
    	    			queue.remove(0);
    	    			downloadDir(item);
    	    			
    	    			//list.
    	    		} else {
    	    			downloadFile(item);
    	    			queue.remove(0);

    	    			
    	    		}
	    			list.setListData(toLocalQueue());
	    			//listLocalFiles();
    	    	}  
    			
    			//回到下載前的本地目錄和遠程目錄
    			toLocalDirectory(new File(localDir_tmp));
    			changeWorkingDirectory(remoteDir_tmp,false);
    		}
    	};
    	
    	t.start();
    }
    
    //僅僅更改queue,不執行實際的下載操作
    public void downloadDir(QueueItem item) {
    	QueueItem item2;
        try {
            FTPFile[] files = null;
            
            //
            //changeWorkingDirectory(item.getRemoteLastToken(),true);
            //changeWorkingDirectory(item.getRemote(),false);
            //toLocalDirectory(item.getLocalLastToken());
            
            //files = ftp.listFiles();
            files = ftp.listFiles(item.getRemote());
            //ftp.list
            
            
            for(int i=1;i<files.length;i++) {
            	String name = files[i].getName();
            	if( files[i].isDirectory() ) {
            	  if( name.equals("..") || name.equals(".") )
            		  continue; 
            	  item2 = new QueueItem(item.getLocal()+name+"\\",item.getRemote()+name+"/");
            	  queue.add(0,item2);
            	} else {
            		item2 = new QueueItem(item.getLocal()+name,item.getRemote()+name);
            		queue.add(0,item2);
            	}

            }
            
            //changeToParentDirectory();
            
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }       	
    }
    
    //執行實際的下載操作
    public void downloadFile(QueueItem item) {

		OutputStream output;

		try {
			File file = new File(Utilities.toLocaleString(item.getLocal()));
			if( !file.exists() ) {
				file.getParentFile().mkdirs();
				
				//file.createNewFile();
			}
			toLocalDirectory(file.getParentFile());
			
			output = new FileOutputStream(file);

			ftp.retrieveFile(item.getRemote(), output);

			output.close();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}
    
    class QueueItem {
    	
    	String local;
    	String remote;
    	
    	public QueueItem(String local,String remote) {
    		this.local = local;
    		this.remote = remote;
    	}
    	
    	public boolean isDirectory() {
    		if( remote.endsWith("/") )
    			return true;
    		else
    			return false;
    	}
    	
    	public String getLocalLastToken() {
    		String[] token=local.split("/");
    		return token[token.length-1];
    	}   	
    	
    	public String getRemoteLastToken() {
    		String[] token=remote.split("/");
    		return token[token.length-1];
    	}
    	
    	public String getLocal() {
    		return local;
    	}
    	
    	public String getRemote() {
    		return remote;
    	}
    	
    	public String toString() {
    		return remote+" --> "+local;
    	}
    }
    
    public void toLocalParentDirectory() {
    	File f = new File(localDir);
    	if( f.getParent()==null ) 
    		return;
    	
    	if( f.getParent().endsWith("\\") )
    		localDir = f.getParent();
    	else 
    		localDir = f.getParent()+"\\";
    	listLocalFiles();
    }
    
    public void toLocalDirectory(String dir) {
    	localDir += dir+"\\";
    	listLocalFiles();
    }
    
    public void toLocalDirectory(File dir) {
    	localDir = dir.getAbsolutePath()+"\\";
    	listLocalFiles();
    }
    public void changeToParentDirectory() {
    	try {

			if( ftp.changeToParentDirectory() ) {
				int i = remoteDir.lastIndexOf("/",remoteDir.length()-2); //
				remoteDir = remoteDir.substring(0,i+1);
//				remoteTable.dir.insertItemAt(remoteDir,0);
//				remoteTable.dir.setSelectedIndex(0);
				remoteTable.setDir(Utilities.toLocaleString(remoteDir));
				listRemoteFiles();
			}
			
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
    }
    
    public void changeWorkingDirectory(String dir,boolean bRelative) {
    	try {
			if( ftp.changeWorkingDirectory(dir) ) {
				if( bRelative )
					remoteDir += dir+"/";
				else
					remoteDir = dir;
//				remoteTable.dir.insertItemAt(remoteDir,0);
//				remoteTable.dir.setSelectedIndex(0);
				remoteTable.setDir(Utilities.toLocaleString(remoteDir));
				listRemoteFiles();
			}
			
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
    }
    
    //
    public void listLocalFiles() {
//    	File f = new File(localDir);
//    	localDir = f.getAbsolutePath();
    	
    	localTable.setDir(localDir);
    	
    	File f = new File(localDir);
    	if( f.canRead() ) {
    		File[] list = f.listFiles();
    		localModel.listLocalFiles(list);
    	}
    	
    }
    
    public void connect() {
        String addr = 
            ((JTextField)(quickBar.addr.getEditor().getEditorComponent())).getText();
        String user = quickBar.user.getText();
        String pass = quickBar.pass.getText();
        int port = Integer.parseInt(quickBar.port.getText());
        
        try {
            cmdArea.appendln("connecting to "+addr+",port="+port);
            ftp.connect(addr,port);          
            
            ftp.login(user,pass);
            cmdArea.appendln("Connected. Waiting for response.");
            
            
            remoteDir = ftp.printWorkingDirectory();
            remoteTable.setDir(remoteDir);
            
            
        
        } catch (SocketException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        
      
      //FTPListParseEngine engine;
      //ftp_.changeWorkingDirectory();
      //System.out.println(ftp_.printWorkingDirectory());
      //ftp_.changeWorkingDirectory("/java");
//      try {
//          FTPFile[] files = null;
//        files = ftp.listFiles();
//        remoteModel.listRemoteFiles(files);
//        
//    } catch (IOException e) {
//        // TODO Auto-generated catch block
//        e.printStackTrace();
//    }
        listRemoteFiles();
      
      
        
        //BasicComboBoxEditor
    }
    
    public void listRemoteFiles() {
        try {
          FTPFile[] files = null, files2 = null;
          files = ftp.listFiles();
          
          files2 = new FTPFile[files.length-1];
          for(int i=1;i<files.length;i++) {
        	  files2[i-1] = files[i]; //跳過"."目錄
          }
          
          //remoteModel.listRemoteFiles(files);
        remoteModel.listRemoteFiles(files2);
          
      } catch (IOException e) {
          // TODO Auto-generated catch block
          e.printStackTrace();
      }   	
    }
    
    public void register(MainMenu me) {
        this.mainMenu = me;
    }
    
    public void register(JLeapTextArea ta) {
        this.cmdArea = ta;
    }
    
    public void register(JLeapList list) {
        this.list = list;
    }
    
    public void register(MainToolBar bar) {
        this.toolBar = bar;
    }
    
    public void register(QuickBar bar) {
        this.quickBar = bar;
    }
    
    public void register(MainFrame mf) {
        this.mainFrame = mf;
    }
    
    public void register(JLeapTable lt,int mode) {
        if( mode == JLeapTable.LOCAL ) {
        	this.localTable = lt;
        } else {
        	this.remoteTable = lt;
        }
    	
    }
    
    public void register(JLeapTableModel ltm,int mode) {
    	if( mode == JLeapTable.LOCAL ) {
    		this.localModel = ltm;
    	} else {
    		this.remoteModel = ltm;
    	}
        
    }
    
//    public void register(FtpMotion ftp) {
//        this.ftp = ftp;
//    }
    
//    public void test() {
//        ftp.test();
//    }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美性生活一区| 午夜国产不卡在线观看视频| 国产91精品欧美| 亚洲精品国产a久久久久久| 欧美精品 日韩| 国产成+人+日韩+欧美+亚洲| 亚洲精品日日夜夜| 91精品国产欧美一区二区18| 国产亚洲欧洲997久久综合 | 欧美一级一区二区| 成人免费视频网站在线观看| 午夜精品久久久久久久99樱桃| 久久久久99精品一区| 欧美性色黄大片| 国产高清久久久| 偷偷要91色婷婷| 中文字幕在线观看不卡| 日韩一级免费一区| 91麻豆精东视频| 国产一区二区精品在线观看| 亚洲图片欧美一区| 中文字幕乱码日本亚洲一区二区| 正在播放一区二区| 91在线视频网址| 国产毛片精品一区| 日韩有码一区二区三区| 亚洲欧洲精品成人久久奇米网 | 欧美精品一区二区久久久| 色欧美乱欧美15图片| 国产麻豆9l精品三级站| 石原莉奈一区二区三区在线观看| 亚洲欧美在线视频观看| 久久亚洲一级片| 日韩欧美中文字幕一区| 欧美手机在线视频| 色天天综合久久久久综合片| 国产91精品精华液一区二区三区 | 在线观看国产精品网站| 丁香婷婷综合五月| 国产一区二区三区久久悠悠色av| 日本午夜精品视频在线观看| 亚洲国产精品一区二区久久恐怖片 | 久久久不卡网国产精品二区 | 欧美日韩国产综合草草| 91一区在线观看| 成人午夜视频网站| 国产精品一卡二| 狠狠色伊人亚洲综合成人| 爽好多水快深点欧美视频| 一区二区三区免费观看| 亚洲女爱视频在线| 日韩毛片视频在线看| 日本一区二区综合亚洲| 欧美极品美女视频| 国产欧美日韩在线| 国产女主播视频一区二区| 国产三级三级三级精品8ⅰ区| 久久综合九色综合97婷婷| 26uuu欧美| 国产日韩欧美精品综合| 国产精品免费视频网站| 成人欧美一区二区三区小说| 国产精品传媒视频| 亚洲欧洲99久久| 一区二区三区在线免费观看| 亚洲综合一区在线| 天堂资源在线中文精品| 日韩国产欧美三级| 久久精品99国产精品| 国内久久精品视频| 国产91在线观看丝袜| av不卡一区二区三区| 91国产福利在线| 欧美日韩国产高清一区二区三区 | 久久精品久久久精品美女| 久久精品国产999大香线蕉| 久久国产夜色精品鲁鲁99| 狠狠色狠狠色综合| 国产精品一区二区91| 91视频在线观看| 久久97超碰色| 成人综合在线网站| 欧美婷婷六月丁香综合色| 欧美日本视频在线| 久久免费美女视频| 综合av第一页| 亚洲成人777| 九色综合狠狠综合久久| 成人黄色小视频| 欧美日韩一区不卡| 精品国产一区久久| 国产日韩欧美精品一区| 亚洲一区中文日韩| 国模大尺度一区二区三区| 成人国产视频在线观看| 一本大道av伊人久久综合| 欧美精品日韩精品| 精品国产凹凸成av人网站| 亚洲日本中文字幕区| 日韩不卡一二三区| eeuss鲁片一区二区三区在线观看 eeuss鲁片一区二区三区在线看 | 欧美国产精品久久| 亚洲另类在线制服丝袜| 蜜桃久久av一区| 色综合久久88色综合天天| 精品久久久久久久久久久久包黑料 | 亚洲综合免费观看高清完整版在线| 秋霞电影网一区二区| 成人99免费视频| 国产成人午夜精品影院观看视频| 欧美性猛片aaaaaaa做受| 欧美精品一区二区三区高清aⅴ| 亚洲欧美日韩久久| 国模无码大尺度一区二区三区| 欧美综合在线视频| 精品国产百合女同互慰| 亚洲成av人片一区二区三区 | 国产电影一区二区三区| 欧美日韩视频在线第一区| 国产午夜亚洲精品理论片色戒 | 精品成人在线观看| 亚洲国产成人porn| 成人精品国产福利| 精品国产免费人成电影在线观看四季| 亚洲老司机在线| 国产一区在线精品| 国产成人免费xxxxxxxx| 欧美一区二区在线视频| 亚洲精品国久久99热| 成人午夜激情片| 久久免费偷拍视频| 久久99精品网久久| 欧美一区二区高清| 亚洲第一会所有码转帖| 在线观看视频一区| 欧美日韩国产精品成人| 亚洲午夜羞羞片| 在线欧美小视频| 亚洲免费在线视频| 99vv1com这只有精品| 国产精品久久久久久亚洲伦| 国产91在线看| 国产精品嫩草影院com| 国产麻豆精品theporn| 久久新电视剧免费观看| 极品美女销魂一区二区三区免费| 日韩一区二区三区四区| 日韩有码一区二区三区| 91精品福利在线一区二区三区| 性久久久久久久| 欧美老女人第四色| 久久久久亚洲蜜桃| 国产一区 二区 三区一级| 精品久久久影院| 国产精品夜夜嗨| 欧美国产一区二区| hitomi一区二区三区精品| 亚洲欧洲性图库| 欧美在线制服丝袜| 日日夜夜精品免费视频| 日韩一区二区在线免费观看| 日本不卡123| 久久综合色播五月| 成人丝袜18视频在线观看| 成人免费在线播放视频| 91久久精品网| 婷婷久久综合九色综合绿巨人 | 亚洲日穴在线视频| 欧美午夜一区二区三区| 婷婷中文字幕综合| 91精品国产91综合久久蜜臀| 狠狠狠色丁香婷婷综合激情| 日本一区二区三区在线观看| 91在线观看一区二区| 亚洲影院免费观看| 日韩一区二区在线观看视频| 国产福利不卡视频| 一区二区三区国产豹纹内裤在线| 欧美人牲a欧美精品| 紧缚奴在线一区二区三区| 国产亚洲欧美日韩俺去了| 美女网站色91| 国产精品色婷婷| 欧美日本一区二区三区| 国产福利一区在线观看| 欧美日韩精品福利| 国产一区二区在线免费观看| 中文字幕一区二区三区精华液| 欧美午夜精品一区二区三区| 紧缚奴在线一区二区三区| 亚洲精品视频在线观看免费| 日韩一级大片在线观看| 成人av在线资源网站| 性久久久久久久久| 中文在线免费一区三区高中清不卡| 欧美色综合久久| 国产黄色成人av| 同产精品九九九| 中文字幕成人在线观看| 欧美久久久久久久久久|