whycxzp
2024-01-03 66db1d15cf5d4b51a346a42b66f0505bd7f31ce0
src/main/java/com/whyc/dto/FtpHelper.java
@@ -1,14 +1,10 @@
package com.whyc.dto;
import com.enterprisedt.net.ftp.FTPClient;
import com.enterprisedt.net.ftp.FTPConnectMode;
import com.enterprisedt.net.ftp.FTPTransferType;
import com.enterprisedt.net.ftp.*;
import org.apache.commons.lang.StringUtils;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.*;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.LinkedList;
@@ -44,7 +40,7 @@
            ftp.setControlEncoding("GBK");
            ftp.setRemoteHost(ftpServer);
            ftp.setRemotePort(ftpPort);
            ftp.setTimeout(6000);
            ftp.setTimeout(1000*60*60*12);
            ftp.setConnectMode(FTPConnectMode.ACTIVE);
            ftp.connect();
            ftp.login(ftpUsername, ftpPassword);
@@ -164,13 +160,20 @@
            for (String s : typeArray) {
                s.trim();
                if (!checkDirectory(ftp, s)) {
                    ftp.mkdir(s);
                    if(!ftp.existsDirectory(s)) {
                        ftp.mkdir(s);
                    }
                    changeDirectory(s);
                }
            }
        }
        ftp.put(inStream, fileName);
        changeDirectory("/");
    }
    public void uploadFile2(File inFile,String fileName) throws IOException, FTPException {
        InputStream inStream = new FileInputStream(inFile);
        ftp.put(inStream, fileName);
    }
    /**
@@ -262,23 +265,37 @@
        return rsList;
    }
    public static void main(String[] args) {
        try { // 从ftp下载文件
            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);
                }
    public void deleteDir(String dirName) throws IOException, FTPException, ParseException {
        FTPClient client = ftp;
        //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());
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        /*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");
                deleteDir(dirName+"/"+name);
                //client.rmdir(dirName+"/"+name);
            }else{
                //name = new String(name.getBytes(StandardCharsets.ISO_8859_1),"GBK");
                client.delete(dirName+"/"+name);
            }
        }*/
        client.rmdir(dirName);
    }
    public String[] getDirList() throws IOException, FTPException {
        return ftp.dir();
    }
    public void mkdir(String dirPath) throws IOException, FTPException {
        ftp.mkdir(dirPath);
    }
}