统计目录大小和时间删除早期的文件

private void deleteOldestFile(File directory)
{
File[] files = directory.listFiles();
Arrays.sort(files, new Comparator<File>() {
    @Override
    public int compare(File f1, File f2)
    {      
        return Long.valueOf(f1.lastModified()).compareTo(f2.lastModified());       
    }});
files[0].delete();
 }
private static long dirSize(File dir) {
long result = 0;
File[] fileList = dir.listFiles();
for(int i = 0; i < fileList.length; i++) {
    if(fileList[i].isDirectory()) {
        result += dirSize(fileList [i]);
    } else {
        // Sum the file size in bytes
        result += fileList[i].length();
    }
 }
return result;
}
 File dirlist = new File(Environment.getExternalStorageDirectory() + "/VideoList");
if(!(dirlist.exists()))
dirlist.mkdir();
Long directorySize = dirSize(dirlist);
 if (directorySize > 1073741824) // this is 1GB in bytes
 {
    deleteOldestFile(dirlist);
 }
File TempFile = new File(Environment.getExternalStorageDirectory()
                + "/VideoList", dateFormat.format(date) + fileFormat);
mediaRecorder.setOutputFile(TempFile.getPath());
或者
while (directorySize > 1073741824)
{
  deleteOldestFile(dirlist);
  direcotrySize = dirSize(dirlist);
}
 
 
 
 
 
 
 
 
 
 
 
 
 
 /**  
     * 获取文件夹大小  
     * @param file File实例  
     * @return long     
     */   
    public static long getFolderSize(java.io.File file){  
 
        long size = 0;  
        try {
java.io.File[] fileList = file.listFiles();   
for (int i = 0; i < fileList.length; i++)   
{   
   if (fileList[i].isDirectory())   
   {   
       size = size + getFolderSize(fileList[i]);  
 
   }else{   
       size = size + fileList[i].length();  
 
   }   
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}   
       //return size/1048576;  
        return size;  
    }  
    
    /**  
     * 删除指定目录下文件及目录   
     * @param deleteThisPath  
     * @param filepath  
     * @return   
     */   
    public void deleteFolderFile(String filePath, boolean deleteThisPath) {   
        if (!TextUtils.isEmpty(filePath)) {   
            try {
File file = new File(filePath);   
if (file.isDirectory()) {// 处理目录   
   File files[] = file.listFiles();   
   for (int i = 0; i < files.length; i++) {   
       deleteFolderFile(files[i].getAbsolutePath(), true);   
   }    
}   
if (deleteThisPath) {   
   if (!file.isDirectory()) {// 如果是文件,删除   
       file.delete();   
   } else {// 目录   
  if (file.listFiles().length == 0) {// 目录下没有文件或者目录,删除   
           file.delete();   
       }   
   }   
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}   
        }   
    }  
    /**
     * 格式化单位
     * @param size
     * @return
     */
public static String getFormatSize(double size) {
double kiloByte = size/1024;
if(kiloByte < 1) {
return size + "Byte(s)";
}

double megaByte = kiloByte/1024;
if(megaByte < 1) {
BigDecimal result1 = new BigDecimal(Double.toString(kiloByte));
return result1.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString() + "KB";
}

double gigaByte = megaByte/1024;
if(gigaByte < 1) {
BigDecimal result2  = new BigDecimal(Double.toString(megaByte));
return result2.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString() + "MB";
}

double teraBytes = gigaByte/1024;
if(teraBytes < 1) {
BigDecimal result3 = new BigDecimal(Double.toString(gigaByte));
return result3.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString() + "GB";
}
BigDecimal result4 = new BigDecimal(teraBytes);
return result4.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString() + "TB";
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值