如题,我知道获取文件的大小是用File.length(),那获取一个目录的大小用什么方法呢?用这个返回的都是0字节。
解决方案 »
- struts.xml跳转问题
- eclipse 下 从 jsp 页 面 插 入 数 据 保 存 到 sql2000 里。出 现 乱 码
- log4j:WARN No appenders could be found for logger (org.hibernate.cfg.annotations
- java求解!
- 在Netbeans中加入组件????
- http会话是只要有访问请求就建立的吗????????????????????
- 请问checkbox简单问题,谢谢
- 着急求救给位:一个能够成功发送邮件的类运行main方法OK,但是放在web容器中tomcat调用,发出的邮件不能被smtp服务器解码???
- php+jsp+perl+mysql(10M)+1Email(5M)(WEB空间50M
- 技术大讨论!!为JSP开发上传组件!!!!可是我原创作品哦,希望能对一些人有些帮助,也希望高手指点
- 疑惑!如何给上传的querystring加密啊?
- 为什么图片无法显示..????急救
File.isDirectory()
Tests whether the file denoted by this abstract pathname is a directory.然后getSize即可参见java在线文档 关于File类的说明
public class Text{
public static void main(String [] args){
File file=new File("c:\\temp");
if(file.isDirectory()){
System.out.println ("文件夹");
System.out.println (file.length());
//取得所有的子文件,假设只有一级目录,如果目录下还有目录就需要用递归得到所有目录下的所有文件
File [] subfile=file.listFiles();
long totalSize=0;
for (int i = 0; i<subfile.length; i++) {
totalSize+=subfile[i].length();
}
System.out.println ("该目录的总大小为:"+totalSize);
}
}
}
{
long folderSize = 0;
if (folder.isDirectory())
{
File[] filelist = folder.listFiles();
for (int i=0;i<filelist.length;i++)
folderSize = folderSize + getSize(filelist[i]);
return folderSize;
}
else
return folder.length();
} public static void main(String args[]){
File f = new File ("d:\\temp\\org\\");
System.out.println(getSize(f));
}
}
需要说明是,前面的方法是统计目录下所有文件的大小的总和,而不是其占用硬盘空间的大小。做这种工作本来就不是java的强项。也可以考虑用c编写,java调用另外一种思路是你已知文件夹中所有文件大小,当添加文件时加上其大小,反之亦然。