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);
}
}
}
