package com.rocket.delete_file;
import java.awt.List;
import java.io.File;
import java.io.ObjectInputStream.GetField;
import java.util.ArrayList;
public class delete_file {
public static void main(String[] args) {
/*
* 删除指定条件的文件
* */
String str = "E:/xll/";
File dir = new File(str);
File[] files = dir.listFiles();
//把15天换算成毫秒
long expirationTime = 15 * 24 * 60 * 60 * 1000;
//获取当前时间
long nowTime = System.currentTimeMillis();
ArrayList<File> deleteList = new ArrayList<File>();
//文件超过1GB就删除一些文件
if (getFileSize(dir) >= 1024) {
while (true) {
//删除最早的文件,可以使用Arrays.sort()和delete()方法
if (getFileSize(dir) < 612) {
break;
}
}
}
//除了最近15天内的文件,其他的文件删除
if (dir.isDirectory()) {
for (File f : files) {
long time = f.lastModified();
if (nowTime - time >= expirationTime) {
deleteList.add(f);
}
}
}
if (deleteList.isEmpty()) {
System.out.println("没有超过15天的文件!");
}
for (File file : deleteList) {
file.delete();
}
}
/*
* 获取文件的大小
*
* @param f
* @return MB
* */
public static long getFileSize(File f) {
long size = 0;
File flist[] = f.listFiles();
if (flist != null) {
for (int i = 0; i < flist.length; i++) {
if (flist[i].isDirectory()) {
size = size + getFileSize(flist[i]);
} else {
size = size + flist[i].length();
}
}
return size / (1024 * 1024);
} else {
return 0;
}
}
}
根据特定的条件删除文件
最新推荐文章于 2023-10-10 15:16:50 发布