专栏首页Ryan Miaojava删除文件,慎重

java删除文件,慎重

在处理删除图片的时候,我将图片路径从数据库取出,然后执行如下删除代码:

void deleteFile(File file){
		if(file!=null && file.exists()){
			if(file.isFile()){
				file.delete();
			}
			else if(file.isDirectory()){
				File files[] = file.listFiles();
				for(int i=0; i<files.length; i++){
					deleteFile(files[i]);
				}
			}
		}
}

 一直运行无误,突然有一次发现所有的图片都不见了,都是404,登陆xshell查看服务器:果然全没了。吓一跳,还好是测试服务器。

原因:

发现有张图片地址为空,传到删除方法的时候就只剩下域名,也就是执行删除域名解析到的文件。这下递归结束后所有的文件全没了,只剩下空文件夹了。

以后考虑问题细致一些,既然是删除图片就不要多此一举判断目录了,判断是文件删除即可。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Docker容器和K8s添加Health Check

    docker容器启动后,怎么确认容器运行正常,怎么确认可以对外提供服务了,这就需要health check功能了。

    Ryan-Miao
  • Ubuntu18.04安装postgresql-10

    官方文档: https://www.postgresql.org/download/linux/ubuntu/

    Ryan-Miao
  • Hexo next博客添加折叠块功能添加折叠代码块

    前言 有大段的东西想要放上去,但又不想占据大量的位置。折叠是最好的选择。下面在Hexo的主题上定制添加折叠功能。 本文基于Hexo Next的主题修改。其他主题...

    Ryan-Miao
  • upload-labs上传绕过(下)

    trim函数 根据我们的测试,它是将指定的字符串移除,那么在这里我们就可以上传.pphphp即可绕过

    字节脉搏实验室
  • Linux 字符串截取

    问天丶天问
  • 【13】Python之常用文件操作

    f=open('so_file',encoding="utf-8")  #打开文件,并读取。Windows上默认字符集GDK,所以这里指定了字符集,不然会报错。...

    py3study
  • PHP实现文件上传后台处理脚本

    本文实例为大家分享了PHP实现文件上传后台处理的具体代码,供大家参考,具体内容如下

    砸漏
  • python开发_fileinput

    Hongten
  • shell基础学习总结(二) (r3笔记第72天)

    -->关于shell编程之文件比较 可以使用如下的选项来做文件的比较。有了这些选项,文件的比较来说都是游刃有余。 -d file file是否存在...

    jeanron100
  • yii2.0框架实现上传excel文件后导入到数据库的方法示例

    本文实例讲述了yii2.0框架实现上传excel文件后导入到数据库的方法。分享给大家供大家参考,具体如下:

    砸漏

扫码关注云+社区

领取腾讯云代金券