From 7bbb19c671bb5b402cfad8d903c5dfab4fe379bf Mon Sep 17 00:00:00 2001
From: whycxzp <glperry@163.com>
Date: 星期六, 23 三月 2024 17:05:27 +0800
Subject: [PATCH] FTP备份代码更新,待实际调试结果

---
 src/main/java/com/whyc/service/FtpService.java |   89 ++++++++++++++++++--------------------------
 1 files changed, 36 insertions(+), 53 deletions(-)

diff --git a/src/main/java/com/whyc/service/FtpService.java b/src/main/java/com/whyc/service/FtpService.java
index 3fa2a1f..1fe8578 100644
--- a/src/main/java/com/whyc/service/FtpService.java
+++ b/src/main/java/com/whyc/service/FtpService.java
@@ -18,8 +18,6 @@
 import java.util.Arrays;
 import java.util.Date;
 import java.util.List;
-import java.util.concurrent.CountDownLatch;
-import java.util.stream.Collectors;
 
 @ConditionalOnProperty(prefix = "configFile",name = "type",havingValue = "2")
 @Service
@@ -27,73 +25,58 @@
 public class FtpService {
     //瀹氭椂涓婁紶鎸囧畾鐩綍涓嬫枃浠�,姣忓懆浜斿噷鏅ㄥ紑鍚浠�
     @Scheduled(cron = "59 59 23 ? * FRI")
-    //@Scheduled(cron = "0/10 * * * * ?")
-    private void sendFtpFile() throws IOException, FTPException, InterruptedException, ParseException {
-        //鍏堣繛鎺tp鏈嶅姟鍣�,鑾峰彇澶囦唤鐩綍,淇濈暀3娆�.杩欓噷鏄粠2023骞�4鏈堝紑濮嬭繘琛屼繚鐣�
+    //@Scheduled(cron = "0 29 15 * * ?")
+    public void sendFtpFile() throws IOException, FTPException, ParseException {
+        //鍏堣繛鎺tp鏈嶅姟鍣�
         FtpHelper ftpRemote = new FtpHelper(YamlProperties.ftpIp, YamlProperties.ftpPort, YamlProperties.ftpUserName, YamlProperties.ftpPassword);
-        String[] dirList = ftpRemote.getDirList();
-        List<String> dirList2 = Arrays.asList(dirList);
-        dirList2 = dirList2.stream().filter(item->Integer.parseInt(item.substring(0,4))>=2023 && Integer.parseInt(item.substring(5,7))>=4).collect(Collectors.toList());
-        for (int i = 0; i < dirList2.size()-3; i++) {
-            ftpRemote.deleteDir(dirList2.get(i));
-        }
-
-
-
         String fileDirName = FileDirPath.getFileDirName();
-        
         String rootDoc=fileDirName+File.separator+"doc_file";
         String timeStr= ActionUtil.sdfwithFTP.format(new Date());
         ftpRemote.mkdir(timeStr);
-        ftpRemote.disconnect();
+        //澶囦唤杩囩▼鏄惁鍑虹幇杩囬棶棰�,鏍囪瘑绗�
+        boolean isError=false;
         try {
 
             File docFile = new File(rootDoc);
             File[] fileList = docFile.listFiles();
-            List<File> list = Arrays.asList(fileList);
-            for (File file:list) {
+            //File[] fileList2 = new File[fileList.length];
+            //BeanUtils.copyProperties(fileList2,fileList);
+            for (File file:fileList) {
                 //鍘嬬缉浼犺緭
                 File fileZip = new File(file.getAbsolutePath() + ".zip");
                 ZipUtils.toZip(file.getAbsolutePath(),new FileOutputStream(fileZip),true);
                 //System.out.println(fileZip.toString()+"鍘嬬缉瀹屾瘯");
+                //System.out.println("杩涜FTP浼犺緭涓�...");
+                try {
+                    //ZipUtils.toZip(file.getAbsolutePath(),new FileOutputStream(fileZip),true);
+                    String pathName=timeStr+"/"+file.getName()+".zip";
+                    //System.out.println("浼犺緭鐩爣璺緞纭涓�:"+pathName);
+                    ftpRemote.uploadFile2(fileZip, pathName);
+                    //System.out.println(fileZip+"浼犺緭瀹屾瘯");
+                    fileZip.delete();
+                    //System.out.println(fileZip+"浼犺緭涓浆鍘嬬缉鍖呭垹闄ゅ畬姣�");
+                } catch (Exception e) {
+                    isError = true;
+                    e.printStackTrace();
+                    fileZip.delete();
+                }
             }
-            //System.out.println("杩涜FTP浼犺緭涓�...");
-            CountDownLatch latch = new CountDownLatch(list.size()+1);
-
-            for (File file:list) {
-                new Thread(){
-                    @Override
-                    public void run() {
-                        //鍘嬬缉浼犺緭
-                        File fileZip = new File(file.getAbsolutePath() + ".zip");
-                        //System.out.println("绾跨▼鍐� 鍘嬬缉鍚庣殑鐩爣璺緞涓�:"+fileZip.toString());
-                        FtpHelper ftp = new FtpHelper(YamlProperties.ftpIp, YamlProperties.ftpPort, YamlProperties.ftpUserName, YamlProperties.ftpPassword);
-                        try {
-                            //ZipUtils.toZip(file.getAbsolutePath(),new FileOutputStream(fileZip),true);
-                            String pathName=timeStr+"/"+file.getName()+".zip";
-                            //System.out.println("浼犺緭鐩爣璺緞纭涓�:"+pathName);
-                            ftp.uploadFile2(fileZip, pathName);
-                            //System.out.println(fileZip+"浼犺緭瀹屾瘯");
-                            fileZip.delete();
-                            //System.out.println(fileZip+"浼犺緭涓浆鍘嬬缉鍖呭垹闄ゅ畬姣�");
-
-                            ftp.disconnect();
-                            latch.countDown();
-                        } catch (Exception e) {
-                            e.printStackTrace();
-                            fileZip.deleteOnExit();
-                            ftp.disconnect();
-                            latch.countDown();
-                        }
-                    }
-                }.start();
-
-            }
-            latch.countDown();
-            latch.await();
             //System.out.println("浼犺緭瀹屾瘯");
+
+            //鑾峰彇澶囦唤鐩綍,淇濈暀4娆�.
+            //濡傛灉杩囩▼鍑虹幇閿欒,鍒欎笉鍒犻櫎
+            if (!isError) {
+                String[] dirList = ftpRemote.getDirList();
+                List<String> dirList2 = Arrays.asList(dirList);
+
+                for (int i = 0; i < dirList2.size()-4; i++) {
+                    ftpRemote.deleteDir(dirList2.get(i));
+                }
+            }
         } catch (Exception e) {
-            e.printStackTrace();
+
+        }finally {
+            ftpRemote.disconnect();
         }
     }
 }

--
Gitblit v1.9.1