tlmy 2009-03-18 17:07
浏览 1027
已采纳

java如何获得ftp服务器上指定文件的大小

我想获得ftp服务器上指定文件的大小
以及下载过程中文件的已完成下载的大小
求教

这个是我写的方法

code::

public static boolean downLoadFtp(String ftpServerIp, String ftpUser,
String ftpPassWord, String url, String filePath, String fileName) {

    try {
        FtpClient fc = new FtpClient(ftpServerIp);
        fc.login(ftpUser, ftpPassWord);
        fc.binary();
        int ch;
        int filesize = 0;
        String fileStr = filePath + fileName;

        File filename = new File(fileStr);

System.out.println("C:: download 89 filename size :: "+filename.toString());

        if (filename.exists()) {//如果存在就直接覆盖
            filename.createNewFile();
            //return false;
        }
        if (!filename.exists()) {
            if (filename.createNewFile()) {
                System.out.println("File   is   created   successfully!");

            }
        }

        RandomAccessFile getFile = new RandomAccessFile(fileStr, "rw");

        getFile.seek(0);

        // url="/FTPTest1.txt";
        TelnetInputStream fget = fc.get(fileName);

        DataInputStream puts = new DataInputStream(fget);



        while ((ch = puts.read()) >= 0) {
            filesize = filesize + ch;

            getFile.write(ch);
        }
        System.out.println("C::   download   96    filesize  :   :   "
                + filesize);
        fget.close();
        getFile.close();
        fc.closeServer();
    } catch (IOException ex) {

        ex.printStackTrace();

    }
    return true;
}

我应该如何在下载之前获得文件的大小啊
以及在现在过程中下载文件的大小···
谢谢··
我想做一个进度条····
可是没有办法获得文件的大小····
谢谢····

  • 写回答

1条回答 默认 最新

  • playfish05 2009-03-18 17:18
    关注

    进度条的实现,其实说起来很简单。就是在程序中开启两个线程,第一个线程用于动态的改变界面上进度条的value值,而第二个线程则在上传或是下载的过程中,做成一个循环,在此循环中,每次读取一定数量如8192字节数的数据。然后传完此数据后,调用第一个线程中的 updateProgress方法,来更新界面进度条的value值。

    [url]http://tech.it168.com/j/2007-10-18/200710182058687_3.shtml[/url]

    相信这篇文章可以解答你的问题。这篇文章详细介绍了java ftp 的实现。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 jupyterthemes 设置完毕后没有效果
  • ¥15 matlab图像高斯低通滤波
  • ¥15 针对曲面部件的制孔路径规划,大家有什么思路吗
  • ¥15 钢筋实图交点识别,机器视觉代码
  • ¥15 如何在Linux系统中,但是在window系统上idea里面可以正常运行?(相关搜索:jar包)
  • ¥50 400g qsfp 光模块iphy方案
  • ¥15 两块ADC0804用proteus仿真时,出现异常
  • ¥15 关于风控系统,如何去选择
  • ¥15 这款软件是什么?需要能满足我的需求
  • ¥15 SpringSecurityOauth2登陆前后request不一致