From 52681d2edc077fa9e30e9b812605cfdc484addd1 Mon Sep 17 00:00:00 2001 From: huangfeng Date: Tue, 15 Apr 2025 14:08:52 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0sftp=E5=BE=AA?= =?UTF-8?q?=E7=8E=AF=E5=88=9B=E5=BB=BA=E7=9B=AE=E5=BD=95=E5=92=8C=E4=B8=8A?= =?UTF-8?q?=E4=BC=A0=E6=96=87=E4=BB=B6=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/xydl/cac/util/SFTPTool.java | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/src/main/java/com/xydl/cac/util/SFTPTool.java b/src/main/java/com/xydl/cac/util/SFTPTool.java index 3ea8a6e..459aa1e 100644 --- a/src/main/java/com/xydl/cac/util/SFTPTool.java +++ b/src/main/java/com/xydl/cac/util/SFTPTool.java @@ -1,6 +1,7 @@ package com.xydl.cac.util; import com.jcraft.jsch.*; +import org.apache.commons.lang3.StringUtils; import java.io.*; import java.util.Properties; @@ -70,4 +71,38 @@ public class SFTPTool { return sftp.ls(remotePath); } + public void cdmkdir(String remotePath) throws SftpException { + if (StringUtils.isNotBlank(remotePath)) { + if (remotePath.startsWith("/")) { + sftp.cd("/"); + } + String[] dirs = remotePath.split("/"); + for (String dir : dirs) { + if (StringUtils.isNotBlank(dir)) { + try { + sftp.cd(dir); + } catch (SftpException e) { + sftp.mkdir(dir); + sftp.cd(dir); + } + } + } + } + } + + public static void main(String[] args) { + SFTPTool sftpTool = new SFTPTool(); + try { + String path = "abc/aaa"; + sftpTool.connect("192.168.1.190", 22, "root", "123456"); + sftpTool.cdmkdir(path); + sftpTool.upload("C:\\Code\\cac\\局放谱图\\50100055_5__001_01_20250409175800.dat", + "50100055_5__001_01_20250409175800.dat"); + } catch (Exception e) { + e.printStackTrace(); + } finally { + sftpTool.disconnect(); + } + } + }