1 5 package com.coldcore.coloradoftp.command.impl.ftp; 6 7 import com.coldcore.coloradoftp.command.Reply; 8 import com.coldcore.coloradoftp.connection.DataConnection; 9 import com.coldcore.coloradoftp.factory.ObjectFactory; 10 import com.coldcore.coloradoftp.factory.ObjectName; 11 import com.coldcore.coloradoftp.filesystem.FileSystem; 12 import com.coldcore.coloradoftp.filesystem.ListingFile; 13 import com.coldcore.coloradoftp.session.Session; 14 import com.coldcore.coloradoftp.session.SessionAttributeName; 15 16 import java.util.Set ; 17 18 public class StatCommand extends ListCommand { 19 20 public Reply execute() { 21 Reply reply = getReply(); 22 if (!testLogin()) return reply; 23 24 DataConnection dataConnection = controlConnection.getDataConnection(); 25 if (dataConnection != null) { 26 reply.setCode("221"); 27 reply.setText("Waiting for data transfer to finish."); 28 return reply; 29 } 30 31 if (getParameter().length() == 0) { 33 Session session = controlConnection.getSession(); 34 String mode = (String ) session.getAttribute(SessionAttributeName.DATA_MODE); 35 String type = (String ) session.getAttribute(SessionAttributeName.DATA_TYPE); 36 String stru = (String ) session.getAttribute(SessionAttributeName.DATA_STRUCTURE); 37 if (mode == null) mode = "S"; 38 if (type == null) type = "A"; 39 if (stru == null) stru = "F"; 40 reply.setCode("211"); 41 reply.setText("Control connection OK, TYPE "+type+", MODE "+mode+", STRU "+stru+"."); 42 return reply; 43 } 44 45 String listDir = getParameter(); 47 Session session = controlConnection.getSession(); 48 FileSystem fileSystem = (FileSystem) ObjectFactory.getObject(ObjectName.FILESYSTEM); 49 Set <ListingFile> list = fileSystem.listDirectory(listDir, session); 50 51 String prepared = prepareList(list)+"end"; 52 53 54 reply.setCode("212"); 55 reply.setText("List results:\r\n"+prepared.trim()); 56 return reply; 57 } 58 59 60 public boolean processInInterruptState() { 61 return true; 62 } 63 64 } 65 | Popular Tags |