package com.github.walker.easydb.assistant;
import org.apache.log4j.Logger;
import java.io.File;
import java.io.IOException;
/**
* EasyDB的辅助管理器, 目前只是提供清空文件存放目录的方法
*
* @author HuQingmiao
*/
public class AuxiliaryMgr {
private static Logger log = LogFactory.getLogger(AuxiliaryMgr.class);
private AuxiliaryMgr() {
}
/**
* 清空基本文件目录
*
* @throws IOException
*/
public static void clearBaseFileDirc() {
// 取临时文件
String baseFileDirc = EasyConfig.getProperty("baseFileDirc");
File dirc = new File(baseFileDirc);
// 逐个删除
File[] files = dirc.listFiles();
for (int i = 0; i < files.length; i++) {
files[i].delete();
}
log.info("Deleted all files in the base file directory. ");
}
/**
* 当文件占用的总空间达到参数指定的字节数时, 才清空基本文件目录.
*
* @param maxSpaceSize 允许基本文件目录占用的最大字节数
* @throws IOException
*/
public static void clearBaseFileDirc(int maxSpaceSize) {
// 取临时文件
String baseFileDirc = EasyConfig.getProperty("baseFileDirc");
File dirc = new File(baseFileDirc);
// 计算该目录下各文件占用的空间大小
File[] files = dirc.listFiles();
int size = 0;
for (int i = 0; i < files.length; i++) {
size += files[i].length();
}
if (size >= maxSpaceSize) {
// 逐个删除
for (int i = 0; i < files.length; i++) {
files[i].delete();
}
}
log.info("Deleted all files in the base file directory. ");
}
public static void main(String[] args) {
clearBaseFileDirc(100000);
}
}