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

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 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥15 stable diffusion
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误