在多线程断点续传中下载文件,如果线程的最后一部份最先下载完了,然而这时候网络断开了。文件大小是总大小,而占用空间却不是!
当再次下载时,先判断下载的文件大小是否和总大小相等,这时文件大小已相等,从而不能续传了。所以,我的问题是:怎样获取文件的占用空间而非文件大小?

解决方案 »

  1.   

    double used = ((file.getTotalSpace() - file.getFreeSpace()) / 1024.0 / 1024 / 1024);
    double total = file.getTotalSpace() / 1024.0 / 1024 / 1024;
    double free = file.getFreeSpace() / 1024 / 1024 / 1024.0;
    setUsedSpace(used > 1024?((int)((100*used)/1024))/100.0 +"T" : ((int)(100*used))/100.0 + "G");
    setTotalSpace(total > 1024?((int)((100*total)/1024))/100.0 +"T" : ((int)(100*total))/100.0 + "G");
    setFreeSpace(free > 1024?((int)((100*free)/1024))/100.0 +"T" : ((int)(100*free))/100.0 + "G");
    自己看代码。你应该明白
      

  2.   

    file是什么对象?是java.io.File的对象吗?如果是那File对象并没有getTotalSpace() 等这些方法呀?
      

  3.   

    具体我不知道如何实现,但是file可能是FromFile
      

  4.   

    具体我不知道如何实现,但是file可能是FromFileFromFile?
    Struts中的组件吗?
      

  5.   


    io中的File怎么会没有getTotalSpace()这个方法呢?
      

  6.   


    解释下。也有可能是jdk的版本的问题。我用的是jdk1.6的。
      

  7.   

    嗯,刚看了JDK1.6的API,发现确实有你说的这几个方法!
    但我用的是JDK1.5所以没有,呵呵!真的不知道该用什么方式去判断文件是否下载完成
      

  8.   

    window下获得空间到处都是。linux下的http://liangxh2008.blog.163.com/blog/static/11241167920105173330694/window的http://www.yesky.com/154/1778154.shtml