###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}