目录

Java-读取Ftp文件大小

目录

Java 读取Ftp文件大小

import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;
import org.apache.commons.net.ftp.FTPReply;

public class FtpTest
{
private static FTPClient client = new FTPClient();
private static final int BUFFER_SIZE = 1024000;

private void isConnection() throws IOException
{
try
{
// FTPaddress
client.connect("127.0.0.1");
// name password
client.login("root", "root");
client.setConnectTimeout(600000);
client.enterLocalPassiveMode();

    	int reply = client.getReplyCode();
    	if((!FTPReply.isPositiveCompletion(reply)))
    	{
    		client.disconnect();
    		throw new IOException("登录ftp服务器失败,请检查ftp配置是否正确!");
    	}
    }
    catch(IOException e)
    {
    	throw new IOException(e);
    }

}

/**

- 关闭 ftp 连接
  */
  private void closeConnection()
  {
  try
  {
  if(client.isConnected())
  {
  client.logout();
  client.disconnect();
  }
  }
  catch(IOException e)
  {
  e.printStackTrace();
  }
  }

public static void main(String[] args)
{

    FtpTest ftp = new FtpTest();
    FTPFile[] files = null;
    Long fileSize = -1L;
    client.setControlEncoding("GBK");
    try
    {
    	ftp.isConnection();
    	client.setFileType(FTP.BINARY_FILE_TYPE);
    	client.setBufferSize(BUFFER_SIZE);

    	// filepath+fileName /a/b.jpg
    	files = client.listFiles("feng风景.png");


    	if(null != files && files.length > 0)
    	{
    		fileSize = files[0].getSize();
    	}
    	System.out.println(fileSize);
    }
    catch(IOException e)
    {
    	e.printStackTrace();
    }
    finally
    {
    	ftp.closeConnection();
    }

}
}