yy761845
2009-03-18 17:07
浏览 862
已采纳

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 的实现。

    已采纳该答案
    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题