这个应该是windows文件系统和Linux文件系统的差异。
存储同样大小的文件,在windows上面和在Linux上面占用的空间大小是不同的。
鸟哥的私房菜里面应该是第八章吧,专门讲文件系统的,楼主可以去看一下。
存储同样大小的文件,在windows上面和在Linux上面占用的空间大小是不同的。
鸟哥的私房菜里面应该是第八章吧,专门讲文件系统的,楼主可以去看一下。
解决方案 »
- 关于swing中的用DefaultTreeModel删除结点removeNodeFromParent
- Java 切片
- 帮帮看看此小程序错哪了```
- 关系表如何映射成对象?
- vc++里的消息映射怎么能在java里用
- 如何修改tree中指定行或TreePath的Foreground或Background?急..........................................................
- 达人们帮我看看问题在哪里
- 一个java.util.Date()对象,怎么得到减去 35400 毫秒后的时间?
- 想不通的一个问题!(关于super以及jcreator)
- 初学者的问题
- 请问insets的问题
- 关于架构设计的一点小困惑,如何利用好interface和skeletal implementation
if (mydir == null || !mydir.isDirectory()) {
return -1;
}
long dirSize = 0;
File[] dirFiles = mydir.listFiles();
for (File curFile : dirFiles) {
if (curFile.isFile()) {
dirSize += curFile.length();
} else {
dirSize += getDirSpace(curFile);
}
}
return dirSize;
}我怎么感觉这块代码有点问题?
这段代码中进行了递归调用,每次递归调用的时候dirSize都会被重新初始化为0,所以需要将dirSize变成全局变量,楼主,OK?
这段代码中进行了递归调用,每次递归调用的时候dirSize都会被重新初始化为0,所以需要将dirSize变成全局变量,楼主,OK?根本不是这么回事,你不了解递归。
问lz个问题,这段代码你想放在哪里用?怎么用?
如果只是想计算个大概的大小的话这样就行
如果要精确统计的话那么建议用io读一下count一下byte数
呃,这代码怪??应该不怪啊,递归写法,有人说dirSize每次递归时都会被重置为0,呵呵。
上面那代码就直接在main里调用,也是获取每个(子)文件的length,然后求和啊。
呃,这代码怪??应该不怪啊,递归写法,有人说dirSize每次递归时都会被重置为0,呵呵。
上面那代码就直接在main里调用,也是获取每个(子)文件的length,然后求和啊。
你的代码是正确的,获得的是文件在磁盘上存储的大小.
所以不同的磁盘格式,不同的操作系统有可能会获得不同的结果.
如果要获得文件的精确大小,那只有一个一个字节数过去了. 这个还要慢
比如Linux将子文件夹也视为一个文件,所以文件夹自身大小应该也算进去了