在后台删除新闻时,需要删除服务器上的文件夹

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;

删除测试

以上是关于在后台删除新闻时,需要删除服务器上的文件夹的主要内容,如果未能解决你的问题,请参考以下文章

Android从后台堆栈中删除事务

从后台堆栈恢复片段时的 savedInstanceState

帝国cms后台改东西前台无反应

写了一个html网页,打开时内容还可以进行删除和修改,刷新之后就还原了内容,这是啥情况?

MVC2新闻

删除FTP服务器上的文件