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

jsch下载文件的两个注意点的更多相关文章

  1. linux远程下载文件 的两种方法之 ftp命令和scp命令

    ftp命令: 服务器有安装ftp Server,另外一台linux可以使用ftp的client程序来进行文件的拷贝读取和下载. 1. 连接ftp服务器  格式:ftp [hostname| ip-ad ...

  2. java 下载文件的两种方式和java文件的上传

    一:以网络的方式下载文件 try { // path是指欲下载的文件的路径. File file = new File(path); // 以流的形式下载文件. InputStream fis = n ...

  3. windows和linux之间上传下载文件的两种方法

    一    用rz和sz http://blog.csdn.net/register_man/article/details/53860774 http://www.jb51.net/article/7 ...

  4. C++服务器下载文件的两种方式

    #include <afxinet.h>#include "wininet.h" #pragma comment( lib, "wininet.lib&quo ...

  5. C# WebClient类上传和下载文件

    这篇文章主要介绍了C# WebClient类用法实例,本文讲解使用WebClient下载文件.OpenWriter打开一个流使用指定的方法将数据写入到uri以及上传文件示例,需要的朋友可以参考下   ...

  6. WebClient 下载文件

    WebClient用法小结(转载)   如果只想从特定的URI请求文件,则使用WebClient,它是最简单的.NET类,它只用一两条命令执行基本操作,.NET FRAMEWORK目前支持以http: ...

  7. .NET两种常见上传下载文件方法

    1.FTP模式 代码如下: (1)浏览 /// <summary> /// 浏览文件 /// </summary> /// <param name="tbCon ...

  8. springmvc和servlet在上传和下载文件(保持文件夹和存储数据库Blob两种方式)

    参与该项目的文件上传和下载.一旦struts2下完成,今天springmvc再来一遍.发现springmvc特别好包,基本上不具备的几行代码即可完成,下面的代码贴: FileUpAndDown.jsp ...

  9. 两种 js下载文件的步骤

    ----------------------------------引用地址链接------------------------------------------------- http://www ...

随机推荐

  1. Dell 服务器阵列扩容【经验分享(转)】

    看到论坛有朋友发帖询问Dell服务器的扩容,索性整理下之前做的文档,发出来和大家做个分享. 做之前给大家提醒2个注意点:①请做好数据备份,相同于HP.IBM,该扩容过程是不可逆的.②本扩容方法支持同级 ...

  2. linux查看进程与线程数

    1. 查看进程:ps -ef 或 ps -aux 得到进程的pid:如: ps -ef | grep process_name | grep -v "grep" | awk '{p ...

  3. Cacti的库表结构-Data

    cacti 的数据都是存放在rrdtool 中的,数据库存放的其实只是配置数据,cacti 的逻辑对象主要分为三种,data (数据).graph (图片).host (设备),这在它的表设计中也能很 ...

  4. 推荐几个不错的h5游戏引擎

    http://www.phaser.io/examples http://www.cocos.com/ http://cn.cocos2d-x.org/tutorial/lists?id=30 coc ...

  5. 腾讯云CentOS7.0使用yum安装mysql

    背景: 今天才申请了腾讯云+校园计划的1元服务器,(https://www.qcloud.com/event/qcloudSchool)安装了Centos7.0,在安装mysql的时候,使用yum l ...

  6. [Python学习]Python学习资料汇总

    Python其实很简单,入门+提高看一些简单的教程就能学会,这里列出一些比较好的资料: 廖雪峰博客 https://www.liaoxuefeng.com/wiki/0014316089557264a ...

  7. Asp.net MVC 自定义异常处理类

    using ElegantWM.Common; using System; using System.Collections.Generic; using System.Linq; using Sys ...

  8. buzhoutiao

    基于SUI前端框架 前台HTML: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" " ...

  9. I/O多路复用和Socket

    由于IO操作涉及到系统调用,涉及到用户空间和内核空间的切换,所以理解系统的IO模型,对于需要进入到系统调用层面进行编程来说是很重要的. 阻塞IO和非阻塞IO 从程序编写的角度来看,I/O就是调用一个或 ...

  10. 2、QT分析之QPushButton的初始化

    原文地址:http://blog.163.com/net_worm/blog/static/127702419201001003326522/ 在简单的QT程序的第二行,声明了一个QPushButto ...