Mega Code Archive

 
Categories / Java / Network Protocol
 

Ftp client gets server file size

import java.io.IOException; import java.util.StringTokenizer; import sun.net.TelnetInputStream; import sun.net.ftp.FtpClient; public class FtpGetFileSizeDemo {   public static int BUFFER_SIZE = 10240;   private FtpClient m_client;   private String host = "";   private String user = "";   private String password = "";   private String sDir = "";   public FtpGetFileSizeDemo() {     try {       System.out.println("Connecting to host " + host);       m_client = new FtpClient(host);       m_client.login(user, password);       System.out.println("User " + user + " login OK");       System.out.println(m_client.welcomeMsg);       m_client.cd(sDir);       System.out.println("Directory: " + sDir);       m_client.binary();       System.out.println("Success.");     } catch (Exception ex) {       System.out.println("Error: " + ex.toString());     }   }   protected void disconnect() {     if (m_client != null) {       try {         m_client.closeServer();       } catch (IOException ex) {       }       m_client = null;     }   }   public static int getFileSize(FtpClient client, String fileName)       throws IOException {     TelnetInputStream lst = client.list();     String str = "";     fileName = fileName.toLowerCase();     while (true) {       int c = lst.read();       char ch = (char) c;       if (c < 0 || ch == '\n') {         str = str.toLowerCase();         if (str.indexOf(fileName) >= 0) {           StringTokenizer tk = new StringTokenizer(str);           int index = 0;           while (tk.hasMoreTokens()) {             String token = tk.nextToken();             if (index == 4)               try {                 return Integer.parseInt(token);               } catch (NumberFormatException ex) {                 return -1;               }             index++;           }         }         str = "";       }       if (c <= 0)         break;       str += ch;     }     return -1;   } }