- 前端请求
function deleteFile($this){
var fileItem = $($this).parents(".file-item");
var index = fileItem.index();
if (confirm("您确定删除此文件吗?")) {
fnSetFilePath(index);
var fileName = fileItem.text()
var deletePath = basePath + '/delete.do?processId='+ process.id +
"&fileName=" + encodeURI(fileName);//请求路径,文件名要进行编码encode
$.get(deletePath);//发起GET请求
fileItem.remove();
}
}
处理的是文件列表,所以要先取到文件的index再进行操作
- 后台处理
@RequestMapping("delete")
@ResponseBody
public void delete(String processId,String fileName) {
String directoryPath = JarClassFileLoader.savePath + processId + File.separator;
if (StringUtils.isNotEmpty(fileName)) {
try {
fileName = URLDecoder.decode(fileName, "UTF-8");
} catch (UnsupportedEncodingException e) {
logger.error(e.getMessage());
}
String filePath = directoryPath + fileName;
File file = new File(filePath);
if (file.exists() && file.isFile()) {
boolean deleteResult = file.delete();
logger.info("删除文件[{}],删除结果:{}", fileName, deleteResult);
}else {
logger.info("文件[{}]不存在",filePath);
}
} else {
File dirFile = new File(directoryPath);
File[] files = dirFile.listFiles();//路径下的所有文件
if ((!dirFile.exists()) || (!dirFile.isDirectory()) || files ==null ||
files.length == 0){
logger.error("路径[{}]下没有文件",directoryPath);
}else {
for (File file : files) {
// 删除子文件
boolean delete = file.delete();
logger.info("删除文件[{}],删除结果:{}", file.getName(), delete);
}
}
}
}