我可以通过以下方式获得目录的递归大小:
val sz = Path("""D:\Games""").walk().sumOf { it.fileSize() }
在Windows上,目录的属性中有Size和Size on Disk。如何获得Size on Disk?
Size
Size on Disk
8e2ybdfx1#
很不幸,我怀疑有没有办法做到这一点。我认为它需要一个系统调用,因为结果将取决于文件系统的确切细节,包括块大小、重复数据删除/数据共享、块打包、日志记录、压缩等。 (有些文件系统非常复杂!)所以这不是你可以在纯Kotlin中做的事情,并且需要一个合适的库,并为你感兴趣的平台提供实现。 但是我不知道有这样的库,并且对this question的回答(要求Java方式)表明没有。
1条答案
按热度按时间8e2ybdfx1#
很不幸,我怀疑有没有办法做到这一点。
我认为它需要一个系统调用,因为结果将取决于文件系统的确切细节,包括块大小、重复数据删除/数据共享、块打包、日志记录、压缩等。 (有些文件系统非常复杂!)
所以这不是你可以在纯Kotlin中做的事情,并且需要一个合适的库,并为你感兴趣的平台提供实现。 但是我不知道有这样的库,并且对this question的回答(要求Java方式)表明没有。