我正在做一个用于ftp文件传输的applet,我需要知道本地文件的大小(用于下载恢复)。问题是File.length()返回0。

该文件存在(已通过File.exists()检查),并且具有超过0个字节(至少在Windows中)。

我不知道要查找为什么length()返回0的更多信息。

这是代码和结果的一部分。

long fileOffset = 0;

if(localfile.exists()){
    fileOffset = localfile.length();
    System.out.println("The file " + localfile.getAbsolutePath() + " has " + localfile.length() +" in size");
    System.out.println("Resume at: " + fileOffset);
    outputStream.skip(fileOffset);
    ftp.setRestartOffset(fileOffset);
    count = fileOffset;
}

控制台中的结果是:
The file D:\test\About Downloads.pdf has 0 in size
Resume at: 0

谢谢

最佳答案

变量“outputStream”的存在表明,此时,也许您已经打开了文件进行写入,并且在此过程中您已将其截断了。在实际打开文件之前尝试计算大小?

10-05 21:54