gpt4 book ai didi

java - 从 sftp 下载多个文件

转载 作者:行者123 更新时间:2023-12-01 13:40:36 30 4
gpt4 key购买 nike

我使用以下代码从 SFTP 服务器“ara22122013.txt”下载此文件:

我想下载服务器中包含字符串22122013的所有文件,

这里的例子:

 Sring SFTPHOST = "10.10.10.10";
int SFTPPORT = 22;
String SFTPUSER = "username";
String SFTPPASS = "password";
Session session = null;
Channel channel = null;
ChannelSftp channelSftp = null;

JSch jsch = new JSch();

public void test()
{
try {
session = jsch.getSession(SFTPUSER,SFTPHOST,SFTPPORT);
System.out.println("Checking username, host, and port...");
session.setPassword(SFTPPASS);
System.out.println("Checking password...");
java.util.Properties config = new java.util.Properties();

config.put("StrictHostKeyChecking", "no");

session.setConfig(config);

session.connect();
System.out.println("Session Connected");
channel = session.openChannel("sftp");

channel.connect();
System.out.println("Channel Connected");
channelSftp = (ChannelSftp)channel;



try {

channelSftp.get("ara22122013.txt", "C:/SFTP/" );
} catch (SftpException ex) {
Logger.getLogger(test.class.getName()).log(Level.SEVERE, null, ex);
}

} catch (JSchException ex) {
Logger.getLogger(test.class.getName()).log(Level.SEVERE, null, ex);
}
}

请指教如何?

最佳答案

您可以使用以下代码。我希望这会对您有所帮助。

 import java.nio.channels.Channel;
import java.util.Vector;

import com.jcraft.jsch.ChannelSftp;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.Session;

public class SFTPJava {

/**
* @param args
*/
@SuppressWarnings("unchecked")
public static void main(String[] args) {
String SFTPHOST = "10.20.30.40";
int SFTPPORT = 22;
String SFTPUSER = "USERNAME";
String SFTPPASS = "PASSWORD";
String SFTPWORKINGDIR = "/home/data/";

Session session = null;
Channel channel = null;
ChannelSftp channelSftp = null;

try {
JSch jsch = new JSch();
session = jsch.getSession(SFTPUSER, SFTPHOST, SFTPPORT);
session.setPassword(SFTPPASS);
java.util.Properties config = new java.util.Properties();
config.put("StrictHostKeyChecking", "no");
session.setConfig(config);
session.connect();
channel = session.openChannel("sftp");
channel.connect();
channelSftp = (ChannelSftp) channel;
channelSftp.cd(SFTPWORKINGDIR);
Vector filelist = channelSftp.ls(SFTPWORKINGDIR);
for (int i = 0; i < filelist.size(); i++) {
System.out.println(filelist.get(i).toString());
}

} catch (Exception ex) {
ex.printStackTrace();
}
}
}

关于java - 从 sftp 下载多个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20824386/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com