1 19 package org.openharmonise.ftp.client; 20 21 import java.util.ArrayList ; 22 import java.util.List ; 23 import java.util.StringTokenizer ; 24 25 import org.openharmonise.vfs.*; 26 27 28 32 public class FTPUNIXListParser implements FTPListParseable { 33 34 37 public FTPUNIXListParser() { 38 super(); 39 } 40 41 44 public List parse(String [] sListing, String sPath) { 45 ArrayList aListing = new ArrayList (7); 46 47 ArrayList aSegments = (ArrayList ) AbstractVirtualFileSystem.getPathSegments(sPath, "/"); 48 49 if(aSegments.size()==1) { 50 aSegments.add(0, ".."); 51 } else if(aSegments.size()==0) { 52 aSegments.add(0, ".."); 53 aSegments.add(1, "."); 54 } 55 56 for (int i = 1; i < sListing.length; i++) { 57 FTPListItem item = new FTPListItem(); 58 StringTokenizer sTok = new StringTokenizer (sListing[i], " ", false); 59 int nCount = 1; 60 String sDateTemp = ""; 61 while (sTok.hasMoreElements()) { 62 String sTemp = (String ) sTok.nextElement(); 63 64 if (nCount == 1) { 65 if (sTemp.startsWith("d")) { 66 item.setIsDirectory(true); 67 } 68 } else if (nCount == 5) { 69 item.setSize(Integer.parseInt(sTemp)); 70 } else if (nCount == 6) { 71 sDateTemp = sTemp; 72 } else if (nCount == 7) { 73 sDateTemp = sDateTemp + " " + sTemp; 74 } else if (nCount == 8) { 75 sDateTemp = sDateTemp + " " + sTemp; 76 item.setDate(sDateTemp); 77 } else if (nCount == 9) { 78 if( sTemp.equals(".") ) { 79 item.setFileName( (String )aSegments.get(aSegments.size()-1) ); 80 } else if( sTemp.equals("..") ) { 81 item.setFileName( (String )aSegments.get(aSegments.size()-2) ); 82 } else { 83 item.setFileName(sTemp); 84 } 85 } 86 nCount++; 87 } 88 aListing.add(item); 89 } 90 91 return (List ) aListing; 92 } 93 94 } 95
| Popular Tags
|