一、获取文件大小
通过file.length()方法可以获取文件的大小;可以通过file.exists()判断文件是否存在
package com.lh.beans;
import java.io.File;
/**
* @author LH
*/
public class FileTest001 {
public static void main(String[] args) {
// 文件的全路径
String filePath = "C:\\Users\\LH\\Desktop\\Mysql.png";
// 创建File对象
File file = new File(filePath);
// 判断文件是否存在
if (file.exists()) {
// 文件存在,获取文件大小
long fileSize = file.length();
System.out.println("文件大小(字节): " + fileSize);
} else {
System.out.println("文件不存在");
}
}
}
二、重命名超过指定大小文件
在实际项目上,如我们记录的接口日志文件,超过50MB,则进行备份处理,可以考虑以下Java重命名实现方式。
package com.lh.beans;
import java.io.File;
/**
* @author LH
*/
public class FileTest001 {
/**
* 5KB
*/
private static final Long SIZE_THRESHOLD = 5 * 1024L;
public static void main(String[] args) {
// 文件的全路径
String filePath = "C:\\Users\\LH\\Desktop\\Mysql.png";
File file = new File(filePath);
// 文件不存在不进行后续处理
if (!file.exists()){
return;
}
// 获取文件大小
long fileSize = file.length();
// 如果文件大于指定大小,则重命名文件
if (fileSize > SIZE_THRESHOLD) {
// 根据需要设定新文件名
String newFileName = filePath + ".1";
File newFile = new File(newFileName);
// 重命名文件
boolean renamed = file.renameTo(newFile);
if (renamed) {
System.out.println("File renamed successfully.");
} else {
System.out.println("Failed to rename the file.");
}
}
}
}
三、删除过期文件
在实际项目上,如记录的日志文件,要求保留7天,超过7天的自动清理,可以考虑以下实现方式。
package com.lh.beans;
import java.io.File;
/**
* @author LH
*/
public class FileTest002 {
/**
* 过期时间:7天
*/
private static final Long FILE_EXPIRED_TIME = 7 * 24 * 60 * 60 * 1000L;
public static void main(String[] args) {
String directoryPath = "F:\\logs";
cleanExpiredFiles(directoryPath, FILE_EXPIRED_TIME);
}
/**
* 删除过期文件
* 如何判断过期文件,用当前时间减去文件最后修改时间,如果差值大于过期时间,则认为文件过期
*
* @param directoryPath 文件目录
* @param time 过期时间
*/
private static void cleanExpiredFiles(String directoryPath, long time) {
File directory = new File(directoryPath);
// 找到当前目录下的所有文件
File[] files = directory.listFiles();
// 当前时间
long currentTime = System.currentTimeMillis();
for (File file : files) {
// 不处理文件夹
if (file.isDirectory()) {
continue;
}
// 文件最后修改时间
long lastModifiedTime = file.lastModified();
long timeDif = currentTime - lastModifiedTime;
// 如何判断过期文件,用当前时间减去文件最后修改时间,如果差值大于过期时间,则认为文件过期
if (timeDif > time) {
file.delete();
System.out.println("Deleted file: " + file.getName());
}
}
}
}