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 条评论
登录 后参与评论

相关文章

来自专栏https://www.cnblogs.com/L

【Python语言】--Crontab结合Python脚本实现将日志每天写入到文件中

实际工作中将Python脚本每天定时写入到日志文件中的使用场景还是蛮多的,有很多种方法可以实现这种效果。本文选择一种方式实现,特将实现细节做如下分享,不当之处烦...

832
来自专栏编程坑太多

『中级篇』Docker-Secret管理和使用(51)

PS:网络现在很发达,密码一定要好好的保存,在公司内部开发安全也是首位,所以本节至关重要!

631
来自专栏企鹅号快讯

Python包

Python包 包用于将一组模块归并到一个目录中,此目录即为包,目录名即为报名 包是一个有层次的文件目录结构,它定义了一个由模块和子包组成的Python应用执行...

19810
来自专栏守望轩

Visual Studio 2008 每日提示(九)

本篇包括tip80-tip91 //www.watch-life.net/visual-studio/visual-studio-2008-tip-day-9...

3398
来自专栏蓝天

不再担心日志文件过大:通用日志滚动脚本

log_rotater.zip #!/bin/sh # https://github.com/eyjian/mooon/blob/master/mooo...

482
来自专栏linjinhe的专栏

Go语言:入门

C++的代码的组织,依赖的管理规定几乎为零。学习golang的时候,一上来就是看语法,看代码,在代码组织和依赖管理这里碰了不少壁,所以重新看了一下官方文档,并做...

2636
来自专栏青枫的专栏

Linux中man命令的使用方法再解释

Linux提供了丰富的帮助手册,当你需要查看某个命令的参数时不必到处上网查找,只要man一下即可。

671
来自专栏cmazxiaoma的架构师之路

上手项目遇到的那些问题

1182
来自专栏happyJared

Linux私房菜:打包、压缩和备份

目前常见的Linux压缩命令包括有gzip、bzip2和最新的xz,下表是一些常见的压缩文件扩展名及对应指令关系:

421
来自专栏IT开发技术与工作效率

Eclipse Alt+/插入自定义代码段教程

1002

扫码关注云+社区