jsch sftp如何删除包含文件的文件夹

sftp递归删除文件夹

背景:项目在做审计时,需要将任务运维过程中产生的审计信息上传到第三方平台,使用的工具是第三方库jsch,使用其中的ChannelSftp进行文件上传。

		<dependency>
            <groupId>com.jcraft</groupId>
            <artifactId>jsch</artifactId>
            <version>0.1.55</version>
        </dependency>

在进行sftp上传时,需要在上传失败时删除已上传的部分,但是看了一下相关的现有方法,发现没有能够直接删除文件夹(文件夹中包含文件或者文件夹)的方法。然后就自己搞了一个,亲测可用。

/**
     * 递归删除远程服务器文件夹
     * @param deleteDest
     * @throws SftpException
     */
    public void deleteDirectory(String deleteDest) throws SftpException {
        if (sftp.stat(deleteDest).isDir()) {
            sftp.cd(deleteDest);
            Vector<ChannelSftp.LsEntry> entries = sftp.ls(".");
            for (ChannelSftp.LsEntry entry: entries) {
                String fileName = entry.getFilename();
                if(fileName.equals(".") || fileName.equals("..")){
                    continue;
                }
                deleteDirectory(entry.getFilename());
            }
            sftp.cd("..");
            sftp.rmdir(deleteDest);
        } else {
            sftp.rm(deleteDest);
        }
    }

好了,以上就是使用jsch 删除远程服务器文件夹的方法,如果对你有帮助,就给个赞吧!

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值