前端
//删除
function delbutton(id){
var gridData = $('#jqGrid').jqGrid('getRowData',id);
layer.confirm('确认要删除该证件吗?',function(index){
$.ajax({
url:'${appName}/t9c_employee_resumes/upload_papers/delFile.ajax',
data:{id:gridData.id,address:gridData.address,seq:gridData.seq,userid:gridData.userid},
type:'post',
dataType:'json',
success:function(data){
if("1" == data.messageFlag){
var popLayerWindow = getPopLayerWindow();
queryList();
successMsg(data.message);
}else{
layer.alert(data.message);
}
}
})
});
}
后端
//删除证件
@RequestMapping(value="/delFile.ajax",method=RequestMethod.POST)
@ResponseBody
public OprMessage delFile(T9c_employee_papersDTO t9c_employee_papersDTO){
OprMessage oprMessage = new OprMessage("1", "删除成功!");
try {
t9c_employee_papersService.delFile(t9c_employee_papersDTO);
String address=t9c_employee_papersDTO.getAddress();
if(!address.equals("")) {
String seq=t9c_employee_papersDTO.getSeq();
String userid=t9c_employee_papersDTO.getUserid();
String index_path=userid+"/"+seq;
int len=index_path.length();
//获得压缩到路径
String del_paht=address.substring(0,address.indexOf(index_path)+len);
File file =new File(del_paht);
//调用方法,递归删除
deleteFile(file);
}
} catch (Exception e) {
oprMessage.setFlagMessage("0", "删除失败!数据库错误");
e.printStackTrace();
}
return oprMessage;
}
deleteFile(file)方法
如果是文件,直接删除。如果是目录,必须删除里面每一层目录里所有文件,最后才能删除最外层的目录。原因:不为空的话,删不了
public static void deleteFile(File file) {
if(file.exists()) {//判断路径是否存在
if(file.isFile()){//boolean isFile():测试此抽象路径名表示的文件是否是一个标准文件。
file.delete();
}else{//不是文件,对于文件夹的操作
//保存 路径D:/1/新建文件夹2 下的所有的文件和文件夹到listFiles数组中
File[] listFiles = file.listFiles();//listFiles方法:返回file路径下所有文件和文件夹的绝对路径
for (File file2 : listFiles) {
/*
* 递归作用:由外到内先一层一层删除里面的文件 再从最内层 反过来删除文件夹
* 注意:此时的文件夹在上一步的操作之后,里面的文件内容已全部删除
* 所以每一层的文件夹都是空的 ==》最后就可以直接删除了
*/
deleteFile(file2);
}
}
file.delete();
}else {
System.out.println("该file路径不存在!!");
}
}