@WebListener // 在此注明以下类是监听器
public class SessionListener implements HttpSessionListener {public void sessionCreated(HttpSessionEvent arg0) {
}
@Override
public void sessionDestroyed(HttpSessionEvent arg0) {
// 获取security用户认证信息
String employeeNo = SecurityContextHolder.getContext().getAuthentication().getName();
String path = new StringBuilder().append(CommonConstants.STR_TAS_MSGTASKHOME).append(File.separator)
.append(CommonConstants.STR_TAS_TASK).append(File.separator)
.append(CommonConstants.STR_TAS_TEMPORARY_UPLOAD).append(File.separator).append(employeeNo).append(File.separator).toString();
String employeeNopath = new StringBuilder().append(CommonConstants.STR_TAS_MSGTASKHOME).append(File.separator)
.append(CommonConstants.STR_TAS_TASK).append(File.separator)
.append(CommonConstants.STR_TAS_TEMPORARY_UPLOAD).append(File.separator).toString();
delAllFile(path);
File file = new File(employeeNopath);
String[] tempList = file.list();
File temp = null;
for (int i = 0; i < tempList.length; i++) {
temp = new File(employeeNopath + tempList[i]);
if (temp.getName().equals(employeeNo)) {
temp.delete();
}
}
}// 删除指定文件夹下所有文件
public static boolean delAllFile(String path) {
boolean flag = false;
File file = new File(path);
if (!file.exists()) {
return flag;
}
if (!file.isDirectory()) {
return flag;
}
String[] tempList = file.list();
File temp = null;
for (int i = 0; i < tempList.length; i++) {
if (path.endsWith(File.separator)) {
temp = new File(path + tempList[i]);
} else {
temp = new File(path + File.separator + tempList[i]);
}
if (temp.isFile()) {
temp.delete();
}
if (temp.isDirectory()) {
delAllFile(path + File.separator + tempList[i]);// 先删除文件夹里面的文件
delFolder(path + File.separator + tempList[i]);// 再删除空文件夹
flag = true;
}
}
return flag;
}// 删除文件夹
// param folderPath 文件夹完整绝对路径
public static void delFolder(String folderPath) {
try {
delAllFile(folderPath); // 删除完里面所有内容
String filePath = folderPath;
filePath = filePath.toString();
java.io.File myFilePath = new java.io.File(filePath);
myFilePath.delete(); // 删除空文件夹
} catch (Exception e) {
e.printStackTrace();
}
}
}
在spring boot 中 ,在session触发器中,当session注销时,删除某个文件夹及文件夹中的文件
最新推荐文章于 2022-04-07 23:20:52 发布