在后台删除新闻时,需要删除服务器上的文件夹
Posted 小智RE0
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在后台删除新闻时,需要删除服务器上的文件夹相关的知识,希望对你有一定的参考价值。
在完成后台文章管理模块时,写到删除文章这一块,考虑到不仅要删除文章在数据库中的存储;还需要删除掉服务器上的文件夹;
之前在添加文章时,文章的封面图是按照文章的标题作为文件夹进行存储的;
将文件夹托管给tomcat’
本来是要用File类的delete()
方法,试了一下,根本删不掉;因为我想删除的文件夹中有封面图文件;
所以就得先把里面的图片文件删除了,再删除外层的以标题命名的文件夹;
/**
* 递归方法删除里面的文件;
* @param file 需要删除的文件夹;
*/
private boolean deleteMultiLevelFiles(File file)
File[] list = file.listFiles();
if (list != null)
//先去递归删除子文件夹以及子文件;
for (File temp : list)
deleteMultiLevelFiles(temp);
return file.delete();
/**
* 根据新闻的Id删除新闻
* @param id 新闻的Id
*/
@ResponseBody
@GetMapping(value = "/deleteNewsById")
public CommonResult deleteNewsById(Integer id)
CommonResult commonResult = null;
try
//这里需要考虑删除服务器上的存储文章封面图的文件夹;
//首先根据Id查找到新闻的标题;从而找到服务器上的文件夹;
News initNews = backNewsService.getNewsInfoById(id);
File f0 = new File("D:\\\\headlinesimg\\\\news\\\\" + initNews.getTitle());
boolean b = deleteMultiLevelFiles(f0);
if (b)
//然后根据Id删除数据库的记录;
backNewsService.deleteNewsById(id);
commonResult = new CommonResult(200, "删除新闻成功", null);
else
commonResult = new CommonResult(203, "删除新闻失败", null);
catch (Exception e)
e.printStackTrace();
commonResult = new CommonResult(500, "删除新闻时服务器异常", null);
return commonResult;
删除测试
以上是关于在后台删除新闻时,需要删除服务器上的文件夹的主要内容,如果未能解决你的问题,请参考以下文章
从后台堆栈恢复片段时的 savedInstanceState