`
mwei
  • 浏览: 121737 次
  • 性别: Icon_minigender_1
  • 来自: 抽象空间
社区版块
存档分类
最新评论

转:java 获取ftp文件大小

    博客分类:
  • java
阅读更多
【注】:本代码摘自 http://www.java2s.com
keyword: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;
  }

}

后来发现不能获得ftp里中文文件的大小,解决办法:
调用getFileSize() 之前先编解码,然后调用getFileSize,就O了,如:
fileName=new String(fileName.getBytes("GBK"),"ISO8859-1");
而不是在第50行 (fileName = fileName.toLowerCase(); )之后去调用fileName=new String(fileName.getBytes("GBK"),"ISO8859-1");




分享到:
评论

相关推荐

    获取ftp服务器文件的大小

    获取ftp服务器文件的大小,从而可以设置下载的进度条

    获取FTP服务器上的文件大小源码

    获取FTP服务器上的文件大小源码 只需修改服务器地址 用户名及密码

    java源码包---java 源码 大量 实例

     用JAVA开发的一个小型的目录监视系统,系统会每5秒自动扫描一次需要监视的目录,可以用来监视目录中文件大小及文件增减数目的变化。 Java日期选择控件完整源代码 14个目标文件 内容索引:JAVA源码,系统相关,日历,...

    java源码包2

     用JAVA开发的一个小型的目录监视系统,系统会每5秒自动扫描一次需要监视的目录,可以用来监视目录中文件大小及文件增减数目的变化。 Java日期选择控件完整源代码 14个目标文件 内容索引:JAVA源码,系统相关,日历...

    java源码包4

     用JAVA开发的一个小型的目录监视系统,系统会每5秒自动扫描一次需要监视的目录,可以用来监视目录中文件大小及文件增减数目的变化。 Java日期选择控件完整源代码 14个目标文件 内容索引:JAVA源码,系统相关,日历...

    java源码包3

     用JAVA开发的一个小型的目录监视系统,系统会每5秒自动扫描一次需要监视的目录,可以用来监视目录中文件大小及文件增减数目的变化。 Java日期选择控件完整源代码 14个目标文件 内容索引:JAVA源码,系统相关,日历...

    JAVA上百实例源码以及开源项目

     用JAVA开发的一个小型的目录监视系统,系统会每5秒自动扫描一次需要监视的目录,可以用来监视目录中文件大小及文件增减数目的变化。 Java日期选择控件完整源代码 14个目标文件 内容索引:JAVA源码,系统相关,日历,...

    java编写的ftpclient,用于向ftp发送、获取文件

    java编写的ftpclient,用于向ftp服务器发送、获取文件。本人亲自测试过,操作系统采用centos6.5 64位,

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    Java目录监视器源程序 9个目标文件 内容索引:JAVA源码,综合应用,目录监视 用JAVA开发的一个小型的目录监视系统,系统会每5秒自动扫描一次需要监视的目录,可以用来监视目录中文件大小及文件增减数目的变化。 Java...

    JAVA上百实例源码以及开源项目源代码

     用JAVA开发的一个小型的目录监视系统,系统会每5秒自动扫描一次需要监视的目录,可以用来监视目录中文件大小及文件增减数目的变化。 Java日期选择控件完整源代码 14个目标文件 内容索引:JAVA源码,系统相关,日历,...

    成百上千个Java 源码DEMO 3(1-4是独立压缩包)

    Java目录监视器源程序 9个目标文件 内容索引:JAVA源码,综合应用,目录监视 用JAVA开发的一个小型的目录监视系统,系统会每5秒自动扫描一次需要监视的目录,可以用来监视目录中文件大小及文件增减数目的变化。 Java...

    Http/FTP多线程断点续传下载组件

    支持多种高级设置:设置线程数目、磁盘缓存大小、搜索镜像服务器的详细参数设置、下载文件完成后同步文件为服务器上的文件时间、下载过程中可以自定义文件临时后缀、未完成的文件设为隐藏属性。 支持磁盘缓存:点量...

    java jdk实列宝典 光盘源代码

    java的声音处理,介绍java中如何处理声音,包括实现响铃,播放wav,au等音频文件,以及控制声音的大小和音量,Beep.java; 媒体播放器,JMFMediaPlayer.java; 12反射 是java程序开发的特征之一,允许java程序对自身...

    vc 6.0开发ftp断点续传源代码

    然后获取文件头,得到文件大小,然后再下载。重点函数是ThreadDownLoad。下载完之后用FileCombine合并文件。 ###开发测试环境: windows xp + Visual C++ 6.0 !!!!!!需要使用MFC环境!!!!!!!!!!!!

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

    本书是第II卷,以开发人员在项目开发中经常遇到的问题和必须掌握的技术为中心,介绍了应用Java进行桌面程序开发各个方面的知识和技巧,主要包括Java语法与面向对象技术、Java高级应用、窗体与控件应用、文件操作...

    asp.net FTP客户端设计与开发(源代码).zip

    文件能上传和下载,判断文件名是否重复进行询问是否覆盖,在断电的情况下能对文件进行断点续传,传输时进度显示(获取文件大小和传输速率估计完成时间);通过该软件能新建文件夹,文件名的修改,文件的删除;能搜索...

Global site tag (gtag.js) - Google Analytics