共享文件夹设置

pom依赖

        <dependency><groupId>com.hierynomus</groupId><artifactId>smbj</artifactId></dependency>

java代码

import com.hierynomus.smbj.connection.Connection;
import com.hierynomus.msdtyp.AccessMask;
import com.hierynomus.mssmb2.SMB2CreateDisposition;
import com.hierynomus.mssmb2.SMB2ShareAccess;
import com.hierynomus.smbj.SMBClient;
import com.hierynomus.smbj.auth.AuthenticationContext;
import com.hierynomus.smbj.session.Session;
import com.hierynomus.smbj.share.DiskShare;
import com.hierynomus.smbj.share.File;
import java.io.InputStream;
import java.util.EnumSet;
import java.util.Enumeration;
import java.util.Objects;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.io.FileUtils;/*** * @param fileName 压缩包名称* @throws Exception*/public void read(String fileName) throws Exception {Connection connection = null;DiskShare share = null;InputStream inputStream = null;// 获取SMB客户端   new可以设置超时时间等参数try (SMBClient client = new SMBClient();) {connection = client.connect("要远程的ip地址");AuthenticationContext ac = new AuthenticationContext("远程计算机的用户名", "远程计算机的密码".toCharArray(), null);Session session = connection.authenticate(ac);// 连接共享文件夹 如读取 /file/zip 路径share = (DiskShare) session.connectShare("file");// 判断是否有该文件if (CollectionUtils.isNotEmpty(share.list("zip", "要读取的文件名"))) {// 读取文件 因为share打开的目录是/fileFile smbFileRead = share.openFile("zip/要读取的文件名", EnumSet.of(AccessMask.GENERIC_READ), null, SMB2ShareAccess.ALL, SMB2CreateDisposition.FILE_OPEN, null);inputStream = smbFileRead.getInputStream();// 把文件流转成 java.io.File 类型java.io.File file = new java.io.File("src/main/resources/temp");FileUtils.copyInputStreamToFile(inputStream, file);// 转成 ZIP 格式try (ZipFile zip = new ZipFile(file)) {Enumeration enumeration = zip.entries();while (enumeration.hasMoreElements()) {// 解压压缩包 得到压缩包里面的实体ZipEntry zipEntry = (ZipEntry) enumeration.nextElement();// 获取实体名称String fileNameOfSerialNumber = zipEntry.getName().split("\\.")[0];}}// 删除临时文件 和 远程压缩包file.delete();share.rm(fileName);}} finally {// 释放资源if (Objects.nonNull(inputStream)) {inputStream.close();}if (Objects.nonNull(share)) {share.close();}if (Objects.nonNull(connection)) {connection.close();}}}

java根据SMB2协议远程读取删除压缩包zip相关推荐

  1. JAVA使用jcifs读取共享文件夹(SMB1,SMB2协议)

    添加maven依赖 最早的 jcifs 库是 org.samba.jcifs 包,但是不支持 smb2协议,因此需要替换成下面这个包: <dependency><groupId> ...

  2. java使用Jsch实现远程操作linux服务器进行文件上传、下载,删除和显示目录信息...

    1.java使用Jsch实现远程操作linux服务器进行文件上传.下载,删除和显示目录信息. 参考链接:https://www.cnblogs.com/longyg/archive/2012/06/2 ...

  3. Java使用Ganymed SSH远程登录服务器并读取文件

    Java使用Ganymed SSH远程登录服务器并读取文件 导入jar包,或配置依赖 <-- ganymed-ssh2-build210.jar --> <dependency> ...

  4. Java springboot压缩文件上传,解压,删除压缩包

    1. 配置文件 在application.yml里 file-server:path: \material-main\# 自己随便命名.注意,不管windows还是linux,路径不需要带盘符,用代码 ...

  5. Tomcat- AJP协议文件读取/命令执行漏洞(CVE-2020-1938 / CNVD-2020-10487)

    CVE-2020-1938 1.概述 1.1 tomcat概述 1.2 gostcat概述 - 漏洞概述 2. 漏洞成因 2.1 前置基础 2.1.1 Tomcat Connector(连接器) 2. ...

  6. Java批量下载并打成压缩包zip格式

    @ApiOperation("批量下载并打成压缩包zip格式")@Log(title = "批量下载并打成压缩包zip格式", businessType = B ...

  7. java将多张图片添加水印并生成压缩包导出

    模板 package com.centit.imgsdown.controller;import com.alibaba.fastjson.JSONArray; import com.centit.f ...

  8. java毕业设计——基于java+Socket+sqlserver的远程监控系统软件设计与实现(毕业论文+程序源码)——远程监控系统

    基于java+Socket+sqlserver的远程监控系统软件设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于java+Socket+sqlserver的远程监控系统软件设计与实现,文章 ...

  9. SMB2协议特性之oplock与lease(上)

    引言 当我们在多个操作系统之间共享文件时,常常需要用到网络文件共享协议,常见的有NFS(Network File System)和SMB(Server Message Block)协议,它们也是企业级 ...

最新文章

  1. 【Java】HashMap构建登录程序
  2. Windows下的函数
  3. (一)在Azure上创建完整的无服务器云原生应用程序
  4. C语言编程计算y,C语言编程入门之--第五章C语言基本运算和表达式-part4
  5. php 复选框 未选,php – 在表单发布时如何获取复选框元素中未选中复选框的值?...
  6. k380没有验证码_罗技K380蓝牙键盘
  7. linux设备开发详解宋宝华,[Linux设备驱动开发详解(第2版)].宋宝华.pdf
  8. Excel表格身份证号码如何一键提取性别、年龄、出生年月
  9. 4.10验证码(抠图)和超级鹰的使用
  10. 微信小程序video标签大小设置
  11. Leetcode 781. 森林中的兔子 C++
  12. 计世资讯:用户对大数据安全分析需求逐渐迫切
  13. 【OP都能理解之】 张量
  14. 中国软件与IT外包产业以印度为镜
  15. uniapp 实现销售订单页面-风格1
  16. mysql ria_RIA Framework Flex中的MySQL管理
  17. SDCMS四网合一企业网站管理系统 v2.4
  18. 解决GIS地图行业应用问题
  19. 序列化的作用、实现、场景
  20. 使用gphotos-sync备份Google 相册

热门文章

  1. 低功耗雷达感应模组,飞睿科技雷达感应方案,让你生活更明亮
  2. MIS系统中的报表测试
  3. 劳埃镜 matlab,劳埃德镜 光的干涉现象
  4. BBSXP论坛基本功能代码
  5. bbsxp8.0.4不能用netbox浏览之问题解决
  6. 用C++编写的木马程序
  7. ToolStripMenuItem
  8. #世界杯征文活动 #Python #2022卡塔尔世界杯 #FIFA World Cup Qatar 2022 # 机器学习 #数据分析 用Python预测世界杯决赛
  9. 记录一个视频加密解密--AES 进阶版 (EVP)
  10. 多智能体强化学习与博弈论-博弈论基础2