【发布时间】:2011-05-02 12:37:26
【问题描述】:
首先请不要忽视,因为您可能认为这是常见问题,但事实并非如此。我知道如何使用file.length 和Apache FileUtils.sizeOfDirectory 找出文件和目录的大小。
我的问题是,在我的情况下,文件和目录太大(数百 mb)。当我尝试使用上面的代码(例如创建文件对象)找出大小时,我的程序会变得非常消耗资源并降低性能。
有没有办法在不创建对象的情况下知道文件的大小?
我正在使用 对于文件 File file1 = new file(fileName);长尺寸 = file1.length();
对于目录,文件 dir1 = 新文件 (dirPath);长尺寸 = fileUtils.sizeOfDirectiry(dir1);
我有一个参数可以进行尺寸计算。如果参数为假,那么它会顺利进行。如果为 false,则程序滞后或挂起。我正在计算 4 个目录和 2 个数据库文件的大小。
【问题讨论】:
-
A
File对象不会将文件读入内存,AFAIK。所以应该不存在资源问题。 -
什么是
fileUtils.sizeOfDirectory?它是内部实用程序还是第 3 方? -
@Ronk 来自 apache commons commons.apache.org/io/api-1.1/org/apache/commons/io/…
-
我不确定它是否会加载到内存中,但它会给我带来很大的性能影响:(