首页 > 网站 > 建站经验 > 正文

Java语言实现简单FTP软件 FTP远程文件管理模块实现(10)

2019-11-02 14:11:27
字体:
来源:转载
供稿:网友

本文为大家分享了FTP远程文件管理模块的实现方法,供大家参考,具体内容如下

首先看一下界面:

1、远程FTP服务器端的文件列表的显示

将远程的当前目录下所有文件显示出来,并显示文件的属性包括文件名、大小、日期、通过javax.swing.JTable()来显示具体的数据。更改当前文件目录会调用com.oyp.ftp.panel.ftp.FtpPanel类的listFtpFiles(final TelnetInputStream list)方法,其主要代码如下

 /**  * 读取FTP文件到表格的方法  * @param list  *  读取FTP服务器资源列表的输入流  */  public synchronized void listFtpFiles(final TelnetInputStream list) {  // 获取表格的数据模型  final DefaultTableModel model = (DefaultTableModel) ftpDiskTable   .getModel();  model.setRowCount(0);  // 创建一个线程类  Runnable runnable = new Runnable() {   public synchronized void run() {   ftpDiskTable.clearSelection();   try {    String pwd = getPwd(); // 获取FTP服务器的当前文件夹    model.addRow(new Object[] { new FtpFile(".", pwd, true),     "", "" }); // 添加“.”符号    model.addRow(new Object[] { new FtpFile("..", pwd, true),     "", "" }); // 添加“..”符号     byte[]names=new byte[2048];    int bufsize=0;    bufsize=list.read(names, 0, names.length);    int i=0,j=0;    while(i<bufsize){    //字符模式为10,二进制模式为13 //   if (names[i]==10) {    if (names[i]==13) {     //获取字符串 -rwx------ 1 user group  57344 Apr 18 05:32 腾讯电商2013实习生招聘TST推荐模板.xls     //文件名在数据中开始做坐标为j,i-j为文件名的长度,文件名在数据中的结束下标为i-1     String fileMessage = new String(names,j,i-j);     if(fileMessage.length() == 0){     System.out.println("fileMessage.length() == 0");     break;     }     //按照空格将fileMessage截为数组后获取相关信息     // 正则表达式 /s表示空格,{1,}表示1一个以上     if(!fileMessage.split("//s+")[8].equals(".") && !fileMessage.split("//s+")[8].equals("..")){     /**文件大小*/     String sizeOrDir="";     if (fileMessage.startsWith("d")) {//如果是目录      sizeOrDir="<DIR>";     }else if (fileMessage.startsWith("-")) {//如果是文件      sizeOrDir=fileMessage.split("//s+")[4];     }     /**文件名*/     String fileName=fileMessage.split("//s+")[8];     /**文件日期*/     String dateStr =fileMessage.split("//s+")[5] +" "+fileMessage.split("//s+")[6]+" " +fileMessage.split("//s+")[7];      FtpFile ftpFile = new FtpFile();     // 将FTP目录信息初始化到FTP文件对象中     ftpFile.setLastDate(dateStr);     ftpFile.setSize(sizeOrDir);     ftpFile.setName(fileName);     ftpFile.setPath(pwd);     // 将文件信息添加到表格中     model.addRow(new Object[] { ftpFile, ftpFile.getSize(),      dateStr });     }     //    j=i+1;//上一次位置为字符模式     j=i+2;//上一次位置为二进制模式    }    i=i+1;    }    list.close();    } catch (IOException ex) {    Logger.getLogger(FTPClientFrame.class.getName()).log(     Level.SEVERE, null, ex);   }   }  };  if (SwingUtilities.isEventDispatchThread()) // 启动线程对象   runnable.run();  else   SwingUtilities.invokeLater(runnable);  } 
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表