From dd3290c514d8e9790faf674b9a4fef9276a042c7 Mon Sep 17 00:00:00 2001 From: lxw <810412026@qq.com> Date: 星期四, 03 十一月 2022 15:04:01 +0800 Subject: [PATCH] FTP上传修改 --- src/main/java/com/whyc/dto/FtpHelper.java | 71 +++++++++++++++++++++++++++++++++-- 1 files changed, 66 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/whyc/dto/FtpHelper.java b/src/main/java/com/whyc/dto/FtpHelper.java index e2cb0d3..234aad7 100644 --- a/src/main/java/com/whyc/dto/FtpHelper.java +++ b/src/main/java/com/whyc/dto/FtpHelper.java @@ -1,6 +1,5 @@ package com.whyc.dto; -import ch.qos.logback.core.joran.spi.InterpretationContext; import com.enterprisedt.net.ftp.FTPClient; import com.enterprisedt.net.ftp.FTPConnectMode; import com.enterprisedt.net.ftp.FTPTransferType; @@ -10,6 +9,10 @@ import java.io.File; import java.io.FileInputStream; import java.io.InputStream; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.LinkedList; +import java.util.List; public class FtpHelper { private FTPClient ftp; @@ -38,7 +41,7 @@ public void connect(String ftpServer, int ftpPort, String ftpUsername, String ftpPassword) { ftp = new FTPClient(); try { - ftp.setControlEncoding("UTF-8"); + ftp.setControlEncoding("GBK"); ftp.setRemoteHost(ftpServer); ftp.setRemotePort(ftpPort); ftp.setTimeout(6000); @@ -159,6 +162,7 @@ String type = filePath.substring(0, len); String[] typeArray = type.split("/"); for (String s : typeArray) { + s.trim(); if (!checkDirectory(ftp, s)) { ftp.mkdir(s); changeDirectory(s); @@ -210,12 +214,69 @@ } } } + + //璇诲彇鏂囦欢鍒楄〃 + public List<File> getFileList(String path) { + List<File> rsList = new ArrayList<>(); + if (path == null || path.equals("")) { + return rsList; + } + File file = new File(path); + if (!file.exists()) { + return rsList; + } + // 澶勭悊鏂囦欢 + if (file.isFile()) { + rsList.add(file); + return rsList; + } + // 澶勭悊鏂囦欢澶� + if (null == file.listFiles()) { + rsList.add(file); + return rsList; + } + LinkedList<File> forDealList = new LinkedList<>(); + forDealList.addAll(Arrays.asList(file.listFiles())); + while (!forDealList.isEmpty()) { + File firstFile = forDealList.removeFirst(); + // 澶勭悊鏂囦欢 + if (firstFile.isFile()) { + // 鎶婃枃浠惰嚜韬厛鍔犲叆缁撴灉 + rsList.add(firstFile); + continue; + } + // 澶勭悊鏂囦欢澶� + File[] files = firstFile.listFiles(); + if (files == null) { + continue; + } + for (File curr : files) { + if (curr.isDirectory()) { + // 灏嗘鏂囦欢澶规斁鍏ュ緟澶勭悊鍒楄〃 + forDealList.add(curr); + } else { + rsList.add(curr); + } + } + } + return rsList; + } + public static void main(String[] args) { try { // 浠巉tp涓嬭浇鏂囦欢 FtpHelper ftp = new FtpHelper("192.168.10.80", 21, "lxw", "lxw810412026"); - File file = new File("D:\\IDEAWorkSpace\\CadDrawManager\\target\\face.zip"); - ftp.uploadFile(file, "test/lxw/face.zip"); - ftp.disconnect(); + //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(); } -- Gitblit v1.9.1