From 97e331f4340f8aa7cb7efe3cacc0f764a337f378 Mon Sep 17 00:00:00 2001
From: whycxzp <perryhsu@163.com>
Date: 星期五, 22 九月 2023 09:10:08 +0800
Subject: [PATCH] 修复FTP无法备份问题

---
 src/main/java/com/whyc/dto/FtpHelper.java |   38 ++++++++++++++------------------------
 1 files changed, 14 insertions(+), 24 deletions(-)

diff --git a/src/main/java/com/whyc/dto/FtpHelper.java b/src/main/java/com/whyc/dto/FtpHelper.java
index 180f25d..537ca04 100644
--- a/src/main/java/com/whyc/dto/FtpHelper.java
+++ b/src/main/java/com/whyc/dto/FtpHelper.java
@@ -4,6 +4,7 @@
 import org.apache.commons.lang.StringUtils;
 
 import java.io.*;
+import java.text.ParseException;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.LinkedList;
@@ -257,10 +258,19 @@
         return rsList;
     }
 
-    public void deleteDir(String dirName) throws IOException, FTPException {
+    public void deleteDir(String dirName) throws IOException, FTPException, ParseException {
         FTPClient client = ftp;
-        String[] dir = client.dir(dirName, true);
-        for (String subDirName : dir) {
+
+        //String[] dir = client.dir(dirName, true);
+        FTPFile[] ftpFiles = client.dirDetails(dirName);
+        for (FTPFile ftpFile : ftpFiles) {
+            if(ftpFile.isDir()){
+                deleteDir(dirName+"/"+ftpFile.getName());
+            }else{
+                client.delete(dirName+"/"+ftpFile.getName());
+            }
+        }
+        /*for (String subDirName : dir) {
             String name = subDirName.substring(subDirName.lastIndexOf(" ") + 1);
             if(subDirName.contains("<DIR>")){ //鏂囦欢澶�
                 //name = new String(name.getBytes(StandardCharsets.ISO_8859_1),"GBK");
@@ -270,28 +280,8 @@
                 //name = new String(name.getBytes(StandardCharsets.ISO_8859_1),"GBK");
                 client.delete(dirName+"/"+name);
             }
-        }
+        }*/
         client.rmdir(dirName);
-    }
-
-    public static void main(String[] args) {
-        try { // 浠巉tp涓嬭浇鏂囦欢
-            FtpHelper ftp = new FtpHelper("192.168.10.80", 21, "lxw", "lxw810412026");
-            //File file = new File("D:\\fileTest\\鍐呴樆鍒嗘瀽杞欢-闂鍙嶉-20221031.docx");
-            /*ftp.uploadFile(file, "test/"+"鍐呴樆鍒嗘瀽杞欢-闂鍙嶉-20221031.docx");
-            ftp.disconnect();*/
-            List<File> list=ftp.getFileList("D:\\fileTest\\software");
-            if(list!=null&&list.size()>0){
-                for (File file:list) {
-                    String name=file.getPath().substring(file.getPath().lastIndexOf("software"));
-                    System.out.println(name);
-                    String pathName="/"+name.replace("\\","/");
-                    ftp.uploadFile(file, pathName);
-                }
-            }
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
     }
 
     public String[] getDirList() throws IOException, FTPException {

--
Gitblit v1.9.1