场景:
1.重命名文件:替换文件中某部分值
2.删除长时间未修改的文件,入日志文件
代码:
package com.commons.util;
import java.io.File;
import java.util.Calendar;
import java.util.Date;
import org.apache.log4j.Logger;
/**
* @ClassName: DeleteFilesSimpe
* @Description: 1.java删除指定目录下前N天的文件 2.重命名文件
* @Author tjf
* @DateTime 2021年2月3日 上午10:05:17
*/
public class DeleteFilesSimpe {
private static Logger log = Logger.getLogger(DeleteFilesSimpe.class.getName());
// 是否删除
private static Boolean ISDELETE = true;
// 是否重命名
private static Boolean ISRENAME = true;
// 删除多少天未修改的文件
private static int DELETEDAY = 3;
private static String filepath = "D:/test/201910";
public static void main(String[] args) {
log.error("开始处理文件----------------------");
Integer num1 = renameFile(filepath, "111_", "");
log.error("重命名文件数量:" + num1);
Integer num2 = deleteFile(filepath);
log.error("删除文件数量:" + num2);
}
public static Integer renameFile(String fromDir, String replacePart, String newPlace) {
File srcDir = new File(fromDir);
if (!srcDir.exists()) {
return 0;
}
File[] files = srcDir.listFiles();
if (files == null || files.length <= 0) {
return 0;
}
int l = 0;
for (int i = 0; i < files.length; i++) {
if (files[i].isFile()) {
try {
File ff = files[i];
String fileName = ff.getName();
log.error("处理文件名称:" + fileName);
// 1.重命名
if (ISRENAME) {
File newfile = new File(fromDir + "/" + fileName.replace(replacePart, newPlace));
files[i].renameTo(newfile);
l++;
}
} catch (Exception e) {
log.info("重命名文件失败");
}
}
}
return l;
}
public static Integer deleteFile(String fromDir) {
File srcDir = new File(fromDir);
if (!srcDir.exists()) {
return 0;
}
File[] files = srcDir.listFiles();
if (files == null || files.length <= 0) {
return 0;
}
int l = 0;
Date today = new Date();
for (int i = 0; i < files.length; i++) {
if (files[i].isFile()) {
try {
File ff = files[i];
String fileName = ff.getName();
log.error("处理文件名称:" + fileName);
long time = ff.lastModified();
Calendar cal = Calendar.getInstance();
cal.setTimeInMillis(time);
Date lastModified = cal.getTime();
long days = getDistDates(today, lastModified);
if (days >= DELETEDAY) {
// 删除
if (ISDELETE) {
files[i].delete();
}
l++;
}
} catch (Exception e) {
log.info("删除文件失败");
}
}
}
return l;
}
/**
* @param startDate
* @param endDate
* @return
*/
private static long getDistDates(Date startDate, Date endDate) {
long totalDate = 0;
Calendar calendar = Calendar.getInstance();
calendar.setTime(startDate);
long timestart = calendar.getTimeInMillis();
calendar.setTime(endDate);
long timeend = calendar.getTimeInMillis();
totalDate = Math.abs((timeend - timestart)) / (1000 * 60 * 60 * 24);
return totalDate;
}
}