1.關於sftp文件上傳和下載的網上很多code,此處就不多寫了。主要記錄下工作中遇到的兩個問題需要多注意。
1.判斷sftp遠程文件是否存在,通過異常捕獲來判斷該文件是否存在,存在返回SftpATTRS對象。
try{
String filename = "/home/omc/ylong/sftp/INTPahcfg.tar.gz"; SftpATTRS attr = chSftp.stat(filename); long fileSize = attr.getSize();
}catch(Exception e){}
2.查詢sftp遠程文件列表名稱,根據文件下載列表來動態下載。
LsEntry 可以認為是文件服務器上的文件條目信息,把包含文件或者目錄相關屬性 。ls命令返回的Vector中的就是LsEntry對象列表。
Vector<LsEntry> list = null; try { list = channel.ls(channel.pwd()); } catch (SftpException e) { logger.error("can not list directory",e); return false; } for(LsEntry entry : list){ String fileName = entry.getFilename(); if(!fileName.equals(".") && !fileName.equals("..")){ if(entry.getAttrs().isDir()){ delDir(fileName); } else { delFile(fileName); } } }