Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从sftp下载多个文件_Java_Sftp - Fatal编程技术网

Java 从sftp下载多个文件

Java 从sftp下载多个文件,java,sftp,Java,Sftp,我正在使用以下代码从SFTP服务器“ara22122013.txt”下载此文件: 我想下载服务器上所有字符串为22122013的文件 这里有一个例子: Sring SFTPHOST = "10.10.10.10"; int SFTPPORT = 22; String SFTPUSER = "username"; String SFTPPASS = "password"; Session session = null; Channel channel = n

我正在使用以下代码从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);
        }
}

请告知如何使用?

您可以使用以下代码段:

Vector path = channelSftp.ls("C:/SFTP/" );

for(String s : path){
channelSftp.get(s, "C:/SFTP/" );
}

请看一下

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

 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();
    }
}
}
import java.nio.channels.Channel;
导入java.util.Vector;
导入com.jcraft.jsch.ChannelSftp;
导入com.jcraft.jsch.jsch;
导入com.jcraft.jsch.Session;
公共类SFTPJava{
/**
*@param args
*/
@抑制警告(“未选中”)
公共静态void main(字符串[]args){
字符串SFTPHOST=“10.20.30.40”;
int-SFTPPORT=22;
字符串SFTPUSER=“用户名”;
字符串sftpass=“密码”;
字符串SFTPWORKINGDIR=“/home/data/”;
会话=空;
通道=空;
ChannelSftp ChannelSftp=null;
试一试{
JSch JSch=新的JSch();
session=jsch.getSession(SFTPUSER、sftport、SFTPPORT);
session.setPassword(sftpass);
java.util.Properties config=new java.util.Properties();
配置放置(“检查”、“否”);
session.setConfig(config);
session.connect();
通道=会话.openChannel(“sftp”);
channel.connect();
channelSftp=(channelSftp)信道;
渠道SFTP.cd(SFTPWORKINGDIR);
向量文件列表=channelSftp.ls(SFTPWORKINGDIR);
对于(int i=0;i
我尝试了您的命令,但它没有下载文件,也没有显示错误。我尝试了您的代码,但问题是程序没有进入for循环,请告知您是否有其他选项。请立即尝试,如果它没有进入for循环,请在ls之后设置断点对其进行调试。如果没有日志和/或更多代码,我将无法为您提供更多帮助。