# Java 如何获得一个文件或文件夹的大小

**URL:** <https://www.isharkfly.com/t/java/620>\
**Category:** 程序语言\
**Tags:** java\
**Created:** [October 28, 2020, 7:28pm UTC](https://www.isharkfly.com/t/java/620 "2020-10-28T19:28:48Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![honeymoose](https://www.isharkfly.com/user_avatar/www.isharkfly.com/honeymoose/32/20796_2.png) [@honeymoose](https://www.isharkfly.com/u/honeymoose)\
**Post date:** [October 28, 2020, 7:28pm UTC](https://www.isharkfly.com/t/java/620/1 "2020-10-28T19:28:48Z")

</div>

有时候我们需要知道一个文件的大小。

我们可以使用一些方法，比如说将文件读取成 InputStream，然后再使用 available() 获得长度就可以了。

我们也可以使用 FileUtils 来获得。

使用的方法是：

```auto
FileUtils.sizeOf(localFileCache)

```

localFileCache 中定义的是文件对象。

关于 sizeOf 的使用为：返回指定的文件或者文件夹的大小。如果你的 File 对象为一个文件的话，这个方法将会返回文件的大小。

如果你的 File 对象为一个目录的话，那么上面的方法将会返回这个文件夹的大小。这个文件夹的大小将会包含这个文件夹中所有子文件夹的内容。换句话说，这个方法是进行递归大小查询的。

![size0f-01](https://www.isharkfly.com/images/transparent.png)

但是，如果一个文件夹或者子文件夹有安全限制，不允许访问的话，那么这个方法将不会将上面的文件夹的内容进行计算。
