leo.xie преди 3 години
родител
ревизия
e1cb73ab6f
променени са 1 файла, в които са добавени 17 реда и са изтрити 1 реда
  1. 17 1
      src/main/java/com/ads/business/service/impl/DocServiceImpl.java

+ 17 - 1
src/main/java/com/ads/business/service/impl/DocServiceImpl.java

@@ -24,6 +24,7 @@ import com.ads.common.util.OnlineUserUtils;
 import com.ads.common.util.PageUtils;
 import com.ads.common.util.PdfUtil;
 import com.ads.common.util.UtilMessage;
+import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -157,6 +158,21 @@ public class DocServiceImpl extends ServiceImpl<DocDao, Doc> implements DocServi
         return null;
     }
 
+    private static boolean deleteDir(File dir) {
+        if (dir.isDirectory()) {
+            String[] children = dir.list();
+            log.info("目录结构:"+JSON.toJSONString(children));
+            for (int i=0; i<children.length; i++) {
+                boolean success = deleteDir(new File(dir, children[i]));
+                if (!success) {
+                    return false;
+                }
+            }
+        }
+        // 目录此时为空,可以删除
+        return dir.delete();
+    }
+
     @Override
     @Transactional(rollbackFor = Exception.class)
     public String updateDoc(DocRequest inData) {
@@ -206,7 +222,7 @@ public class DocServiceImpl extends ServiceImpl<DocDao, Doc> implements DocServi
             log.info(getImageFilePath(doc.getId()));
             log.info("判断文件是否存在:"+imageFile.exists());
             if(imageFile.exists()){
-                imageFile.delete();
+                deleteDir(imageFile);
                 log.info("文件删除成功");
             }
             log.info(getImageFilePath(doc.getId())+".pdf");