2012-04-05 5 views
0

Я хочу знать, действительно ли «положить» удалось поставить файл в пункт назначения. Если по какой-либо причине файл не помещается в пункт назначения [возможно, из-за проблем на целевом сервере, таких как ограничение пространства и т. Д.), Мне нужно это знать.Как уловить успех/неудачу ftp в sun.net.ftp.FtpClient?

Код:

private static boolean putFile(String m_sLocalFile, FtpClient m_client) { 
      boolean success = false; 
    int BUFFER_SIZE = 10240; 
    if (m_sLocalFile.length() == 0) { 
     System.out.println("Please enter file name"); 
    } 
    byte[] buffer = new byte[BUFFER_SIZE]; 
    try { 
     File f = new File(m_sLocalFile); 
     int size = (int) f.length(); 
     System.out.println("File " + m_sLocalFile + ": " + size + " bytes"); 
     System.out.println(size); 
     FileInputStream in = new FileInputStream(m_sLocalFile); 
     OutputStream out = m_client.put(f.getName()); 

     int counter = 0; 
     while (true) { 
      int bytes = in.read(buffer); 
      if (bytes < 0) 
       break; 
      out.write(buffer, 0, bytes); 
      counter += bytes; 
      System.out.println(counter); 
     } 

     out.close(); 
     in.close(); 
    } catch (Exception ex) { 
     System.out.println("Error: " + ex.toString()); 
    } 
      return success; 
} 

ответ

0

я ожидал бы, чтобы бросить IOException. У вас есть основания полагать, что нет? Но вы не должны использовать этот класс напрямую, вы должны использовать ftp: URL и его класс URLConnection для выполнения ввода-вывода с помощью вызова setDoOutput(true).

+0

Считаете ли вы, что это нормально, если я после 'in.close();' установил успех в true? – itro

+0

@itro Конечно. – EJP

Смежные вопросы