java 递归 删除_Java递归删除

这篇博客介绍了如何使用Java进行递归删除操作,包括删除文件和数据库中的商品目录。在文件系统中,通过`recursiveDelete`方法实现递归遍历并删除指定目录及其所有子文件。在数据库中,`deleteGoodsCategory`方法配合`recursive`方法,先检查商品目录是否有子目录,若有则递归删除所有子目录,最后删除自身。
摘要由CSDN通过智能技术生成

###Java递归删除文件

public static void main(String[] args) {

File file = new File("D:\\dir");

recursiveDelete(file);

}

###recursiveDelete方法

private static void recursiveDelete(File file) {

if (file.isDirectory()) {

File[] list = file.listFiles();

for (File f : list) {

recursiveDelete(f);

}

// 删除完文件夹内的文件后删除自身

file.delete();

} else {

file.delete();

}

}

###=================================================================== ###同理,递归删除数据库里的商品目录

public int deleteGoodsCategory(Long goodsCategoryId) {

return recursive(goodsCategoryId);

}

private int recursive(Long goodsCategoryId) {

int r = 0;//此统计结果不准确

if (hasSubCategory(goodsCategoryId)) {

//删除子类目

List list = goodsCategoryDao.selectSubGoodsCategory(goodsCategoryId);

for (GoodsCategory g : list) {

recursive(g.getId());

}

goodsCategoryDao.deleteByPrimaryKey(goodsCategoryId);//删除完子类目后删除自身

r++;

} else {

goodsCategoryDao.deleteByPrimaryKey(goodsCategoryId);

r++;

}

return r;

}

public boolean hasSubCategory(Long goodsCategoryId) {

return goodsCategoryDao.hasSubCategory(goodsCategoryId) > 0;

}

###goodsCategoryDao

int deleteByPrimaryKey(Long id);

//delete from xy_goods_category where id = #{id}

int hasSubCategory(Long goodsCategoryId);

// select count(1) from xy_goods_category where parent_id = #{goodsCategoryId}

/**

* 某个目录的子目录列表

*/

List selectSubGoodsCategory(Long goodsCategoryId);

// select * from xy_goods_category where parent_id = #{goodsCategoryId}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值