我正在做一个用于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”的存在表明,此时,也许您已经打开了文件进行写入,并且在此过程中您已将其截断了。在实际打开文件之前尝试计算大小?