使用java获取目录大小

问题描述 投票:0回答:1

我的代码需要通过多项测试。程序的目的是找到某个目录的大小。测试包括目录不存在、存在但空目录和非空存在目录的情况。

计算目录大小的方法:

public long checkSize(String directoryName)

其中
directoryName
只是一个字符串,而不是绝对或相对路径。

所以测试资源有这样的结构(用Idea IDE查看):

    /test
        /resources
            /cats
                /cat.jpg
            /rats (empty)

目录“cats”实际上位于此路径:

/C:/dev/DirectorySize/target/test-classes/cats

方法

checkSize(String directoryName)
仅获取字符串“cats”(我的意思是这里
directoryName
==“cats”)。

我想通过输入以下内容来获取目录的 URL:

URL resource = getClass().getClassLoader().getResource(directoryName)

上面的代码适用于不存在的目录,因为它返回 null(例如

directoryName
== “dragons”)。然而,对于存在但空的目录,它也会返回 null(例如
directoryName
==“rats”)。

所以这就是我的问题。如何获取具有这种结构的现有但非空目录的大小?

java file-io directory
1个回答
0
投票

没有内置支持查找目录的大小。事实上,这并不是一个明确定义的概念:有很多方法可以测量“大小”。

但是Java SE确实提供了

FileVisitor
接口,允许遍历文件系统中的目录树,访问每个目录和文件;请参阅Java 教程:遍历文件树。要计算目录的大小(无论这意味着什么),您可以遍历树并计算文件的数量,或者将它们的文件大小相加,或者其他什么。

© www.soinside.com 2019 - 2024. All rights reserved.