Java-STFP連接獲取指定目錄下的所有文件


/**
* Sftp連接類
*
* @author:Lichangjiang
* @date:2020/10/20 9:23
*/
public class SFTPUtil {
private static final Logger log = Logger.getLogger(SFTPUtil.class);

//主機地址
private static String host = "10.2.12.73";
//端口號
private static int post = 22;
//登錄用戶名
private static String username = "root";
//登錄密碼
private static String password = "123456";


/**
* 連接sftp服務器
*
* @param host 服務器地址
* @param port 服務器端口
* @param username 登錄用戶名
* @param password 登錄密碼
* @return
*/

public static ChannelSftp connect(String host, int port, String username, String password) {
ChannelSftp sftp = null;
Session session = null;
try {
long start = System.currentTimeMillis();
JSch jsch = new JSch();
//創建session,並將用戶名,主機地址以及端口號放入到session中
session = jsch.getSession(username, host, port);
System.out.println("創建Session!");
//設置密碼
session.setPassword(password);
Properties sshConfig = new Properties();
sshConfig.put("StrictHostKeyChecking", "no");
session.setConfig(sshConfig);
//創建連接
session.connect();
System.out.println("session連接");
//打開channel
Channel channel = session.openChannel("sftp");
channel.connect();
long end = System.currentTimeMillis();
sftp = (ChannelSftp) channel;
System.out.println("成功連接到" + host);
System.out.println("成功登陸sftp,登陸耗時:[" + (end - start) + "]毫秒");
//獲取指定目錄下的所有文件
sftp.cd("/home/java/test");
Vector<ChannelSftp.LsEntry> list = sftp.ls("*.csv");
for (ChannelSftp.LsEntry entry : list) {
System.out.println(entry.getFilename());
}
} catch (Exception e) {
log.error("sftp連接失敗:", e);
} finally {
//關閉session
if (session!=null){
session.disconnect();
}
//關閉sftp
if (sftp!=null){
sftp.disconnect();
}

}
return sftp;
}


 //啟動測試
public static void main(String[] args) {
ChannelSftp sftp = connect(host, post, username, password);
System.out.println(sftp);
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM