本文为大家分享了FTP远程文件管理模块的实现方法,供大家参考,具体内容如下首先看一下界面:远程FTP服务器端的文件列表的显示将远程的当前目录下所有文件显示出来,并显示文件的属性包括文件名、大小、日期、通过javax.swing.JTable
本文为大家分享了FTP远程文件管理模块的实现方法,供大家参考,具体内容如下
首先看一下界面:
远程FTP服务器端的文件列表的显示
将远程的当前目录下所有文件显示出来,并显示文件的属性包括文件名、大小、日期、通过javax.swing.JTable()来显示具体的数据。更改当前文件目录会调用com.oyp.ftp.panel.ftp.FtpPanel类的listFtpFiles(final TelnetInputStream list)方法,其主要代码如下
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); }
--结束END--
本文标题: Java语言实现简单FTP软件 FTP远程文件管理模块实现(10)
本文链接: https://lsjlt.com/news/227153.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0