【问题标题】:How to get file size in Java [duplicate]如何在Java中获取文件大小[重复]
【发布时间】:2021-02-04 14:16:24
【问题描述】:

可能重复:
Size of folder or file

我用这段代码实例化了一个File 对象:

File f = new File(path);

我如何获得这个文件的大小?

getUsableSpace()getTotalSpace()getFreeSpace() 有什么区别?

【问题讨论】:

  • 您是否甚至尝试搜索回答了您的问题的现有问题?
  • 视情况而定;在中部或东部地区,使用爪哇语;其余的,使用印尼语。不过,大多数说爪哇语的人(异常值除外)也会说印尼语。等等,什么?

标签: java


【解决方案1】:

File 类中使用length() 方法。来自 javadocs:

返回此抽象路径名表示的文件的长度。如果此路径名表示目录,则返回值未指定。

已更新 现在我们应该使用Files.size() 方法:

Path path = Paths.get("/path/to/file");
long size = Files.size(path);

问题的第二部分,直接来自File 的javadocs:

  • getUsableSpace() 返回此抽象路径名命名的分区上此虚拟机可用的字节数

  • getTotalSpace() 返回此抽象路径名命名的分区的大小

  • getFreeSpace() 返回此抽象路径名命名的分区中未分配的字节数

【讨论】:

  • 这个答案现在已经过时了;文件 API 已被新 API 替换,原为:Paths path = Paths.get("/path/to/file"); long size = Files.size(path); 请参阅 API docs
  • @rzwitserloot 谢谢!我根据您的建议更新了我的答案。
  • 哦,太棒了。我永远不知道如何处理已被时间超越的伟大答案。但是,嘿,如果原作者在附近更新东西,那就更好了。谢谢!
【解决方案2】:

试试这个:

long length = f.length();

【讨论】:

    【解决方案3】:

    做了一个快速的谷歌。似乎是为了找到你这样做的文件大小,

    long size = f.length();
    

    你发的三种方法的区别可以看here

    getFreeSpace() 和 getTotalSpace() 很容易解释,getUsableSpace() 似乎是 JVM 可以使用的空间,在大多数情况下与可用空间的数量相同。

    【讨论】:

    • 我只在本站发现了这段代码:非常有用 public static long folderSize(File directory) { long length = 0; for (文件文件: directory.listFiles()) { if (file.isFile()) 长度 += file.length();否则长度 += 文件夹大小(文件); } 返回长度; }
    猜你喜欢
    • 1970-01-01
    • 2018-07-05
    • 1970-01-01
    • 2011-08-03
    • 1970-01-01
    • 2018-05-08
    • 2013-11-18
    相关资源
    最近更新 更多