smb协议读写远程文件

java 利用SMB读取远程文件 java 利用SMB读取远程文件文章分类:Java编程Java代码  package com.yss.test.FileReadWriter;    import java.io.BufferedInputStream;  import java.io.BufferedOutputStream;  import java.io.File;  import java.io.FileInputStream;  import java.io.FileOutputStream;  import java.io.IO 阅读详情
  1. package com.yss.test.FileReadWriter;  
  2.   
  3. import java.io.BufferedInputStream;  
  4. import java.io.BufferedOutputStream;  
  5. import java.io.File;  
  6. import java.io.FileInputStream;  
  7. import java.io.FileOutputStream;  
  8. import java.io.IOException;  
  9. import java.io.InputStream;  
  10. import java.io.OutputStream;  
  11. import java.net.MalformedURLException;  
  12.   
  13. import jcifs.smb.SmbFile;  
  14. import jcifs.smb.SmbFileInputStream;  
  15. import jcifs.smb.SmbFileOutputStream;  
  16.   
  17. public class RemoteAccessData {  
  18.   
  19.     /** 
  20.      * @param args 
  21.      * @throws IOException  
  22.      */  
  23.     public static void main(String[] args) throws IOException {  
  24.         smbGet1("smb://192.168.75.204/test/新建 文本文档.txt");  
  25.         smbGet("smb://192.168.75.204/test/新建 文本文档.txt","e:/");  
  26.     }  
  27.   
  28.     /** 
  29.      * 方法一: 
  30.      *  
  31.      * @param remoteUrl 
  32.      *            远程路径 smb://192.168.75.204/test/新建 文本文档.txt 
  33.      * @throws IOException 
  34.      */  
  35.     public static void smbGet1(String remoteUrl) throws IOException {  
  36.         SmbFile smbFile = new SmbFile(remoteUrl);  
  37.         int length = smbFile.getContentLength();// 得到文件的大小  
  38.         byte buffer[] = new byte[length];  
  39.         SmbFileInputStream in = new SmbFileInputStream(smbFile);  
  40.         // 建立smb文件输入流  
  41.         while ((in.read(buffer)) != -1) {  
  42.   
  43.             System.out.write(buffer);  
  44.             System.out.println(buffer.length);  
  45.         }  
  46.         in.close();  
  47.     }  
  48.   
  49.     // 从共享目录下载文件  
  50.     /** 
  51.      * 方法二: 
  52.      *    路径格式:smb://192.168.75.204/test/新建 文本文档.txt 
  53.      *              smb://username:password@192.168.0.77/test 
  54.      * @param remoteUrl 
  55.      *            远程路径 
  56.      * @param localDir 
  57.      *            要写入的本地路径 
  58.      */  
  59.     public static void smbGet(String remoteUrl, String localDir) {  
  60.         InputStream in = null;  
  61.         OutputStream out = null;  
  62.         try {  
  63.             SmbFile remoteFile = new SmbFile(remoteUrl);  
  64.             if (remoteFile == null) {  
  65.                 System.out.println("共享文件不存在");  
  66.                 return;  
  67.             }  
  68.             String fileName = remoteFile.getName();  
  69.             File localFile = new File(localDir + File.separator + fileName);  
  70.             in = new BufferedInputStream(new SmbFileInputStream(remoteFile));  
  71.             out = new BufferedOutputStream(new FileOutputStream(localFile));  
  72.             byte[] buffer = new byte[1024];  
  73.             while (in.read(buffer) != -1) {  
  74.                 out.write(buffer);  
  75.                 buffer = new byte[1024];  
  76.             }  
  77.         } catch (Exception e) {  
  78.             e.printStackTrace();  
  79.         } finally {  
  80.             try {  
  81.                 out.close();  
  82.                 in.close();  
  83.             } catch (IOException e) {  
  84.                 e.printStackTrace();  
  85.             }  
  86.         }  
  87.     }  
  88.   
  89.     // 向共享目录上传文件  
  90.     public static void smbPut(String remoteUrl, String localFilePath) {  
  91.         InputStream in = null;  
  92.         OutputStream out = null;  
  93.         try {  
  94.             File localFile = new File(localFilePath);  
  95.   
  96.             String fileName = localFile.getName();  
  97.             SmbFile remoteFile = new SmbFile(remoteUrl + "/" + fileName);  
  98.             in = new BufferedInputStream(new FileInputStream(localFile));  
  99.             out = new BufferedOutputStream(new SmbFileOutputStream(remoteFile));  
  100.             byte[] buffer = new byte[1024];  
  101.             while (in.read(buffer) != -1) {  
  102.                 out.write(buffer);  
  103.                 buffer = new byte[1024];  
  104.             }  
  105.         } catch (Exception e) {  
  106.             e.printStackTrace();  
  107.         } finally {  
  108.             try {  
  109.                 out.close();  
  110.                 in.close();  
  111.             } catch (IOException e) {  
  112.                 e.printStackTrace();  
  113.             }  
  114.         }  
  115.     }  
  116.   
  117.     // 远程url smb://192.168.0.77/test  
  118.     // 如果需要用户名密码就这样:  
  119.     // smb://username:password@192.168.0.77/test  
  120.   
  121. }  
java 通过 SmbFile 类操作共享文件夹(1) 四、上传文件 /** 上传文件 @param remoteUrl @param shareFolderPath @param localFilePath @param fileName */ public static void uploadFileToSharedFolder(String remoteUrl, String shareFolderPath, String localFilePath, String fileName) { InputStream inputStr 阅读详情

相关推荐

java使用smb连接访问共享文件夹文件

基于客户不可开放给外系统直连服务器的需求,还需要在服务器的固定文件夹查看相关文件,制定一下实现策略。

NoSigner的博客 2964

利用Samba配置文件共享服务

配置文件 /etc/samba///设置samba密码文件# cat /etc/passwd|mksmbpasswd.sh > /etc/samba/smbpasswd//为安全起见,设置文件和目录的权限# chown root.root /etc/samba/smbpasswd# chmod 500 /etc/samba# chmod 600 /etc/samba/smb

鲤鱼商城 3593

CODESYS远程文件读写实战:如何通过网络映射实现跨设备数据同步(附避坑指南)

本文详细介绍了在工业自动化项目中,如何利用网络映射技术实现CODESYS跨设备远程文件读写。通过将远程共享文件夹映射为本地驱动器,CODESYS程序可像操作本地文件一样稳定同步数据,适用于配方管理、日志记录等场景。文中提供了从网络配置、共享设置到代码实现的完整实战指南,并重点解析了权限配置、网络稳定性等关键避坑要点,帮助开发者构建可靠的分布式数据同步方案。

weixin_29229261的博客 378

使用Java局域网读取windows共享文件夹(smb协议)

使用Java局域网读取windows共享文件夹(smb协议)注意要处与同一局域网内。

weixin_46838336的博客 6643

jcifs smb 远程数据访问操作

jcifs smb

Evennn的专栏 2997

【CTF-misc】java盲水印BlindWatermark工具使用

​ 盲水印是一种肉眼不可见的水印方式,对图片资源使用图片盲水印或者文字水印,借此避免数字媒体未经授权的复制和拷贝,可通过对原图进行解码操作,得到水印图来证明版权归属。 题目来源:NewStarCTF 2023 公开赛道 WEEK2|MISC:Jvav

qq_39972370的博客 6445

使用SMB协议远程读写文件

以下代码将远程文件复制到局域网内的机器上,url可为广域网的任一文件,targetFile为局域网内的文件  public  void CopyFile(String url, SmbFile targetFile) throws IOException {               java.net.URL urlfile = null;           HttpURLConne

FlyingGIS 3034

C语言——预处理指令

return 0;这里是可以编译通过的,运行结果也是对的:;;return 0;这里编译器会报错:这里是有语法错误的。在C语言中,#include是一个预处理指令,用于将一个源文件的内容插入到另一个源文件中。这通常用于包含标准库或自定义库的头文件,以便在程序中使用这些库中定义的函数、类型和宏。#include或:用于包含标准库头文件。查找策略是,编译器会在标准库头文件目录中查找这些文件。:用于包含用户自定义的头文件。

Stewie Lee的博客 3188

基于SMB协议的共享文件读写

一、SMB协议 SMB协议是基于TCP-NETBIOS下的,一般端口使用为139,445。 服务器信息块(SMB)协议是一种IBM协议,用于在计算机间共享文件、打印机、串口等。SMB 协议可以用在因特网的TCP/IP协议之上,也可以用在其它网络协议如IPX和NetBEUI 之上。   SMB 一种客户机/服务器、请求/响应协议。通过 SMB 协议,客户端应用程序可以在各种网络环境下读、写...

dieman0446的博客 158

Modbus RTU/TCP协议栈手写实现:主从站设计、功能码、CRC、异常响应

本文从协议栈架构、帧结构、功能码、CRC校验、异常响应、主从站设计等多个维度,完整阐述了Modbus RTU/TCP协议栈的手写实现方案。帧间隔机制是RTU的核心,T3.5超时检测决定了帧边界识别CRC16查表法以512字节ROM换取8倍性能提升,适合嵌入式功能码路由表实现可扩展的代码架构,便于新增功能异常响应机制保障协议健壮性,每个错误都有明确反馈Modbus TCP在RTU基础上增加MBAP头,实现以太网扩展多核RTOS环境下的并发访问与线程安全RS-485总线的电气隔离与浪涌保护。

从事移动开发八年,csdn博客专家,阿里云特邀专家,华为云云享专家,高级网络信息安全工程师,大数据工程师(高级),python技术开发(高级),HarmonyOS 应用开发者高级认证,现在某学校任教。 1万+

【信号与系统】Multisim 仿真信号合成与分解

软件 Multisim 进行方波信号的产生、分解和合成,观察信号波形的分解与合成,加深对信号频谱的理解。

AXYZdong的博客 2万+

smbj实战指南:DiskShare与File API实现跨平台文件操作

smbj是一个用Java实现的Server Message Block (SMB2, SMB3)协议库,它允许Java应用程序与支持SMB协议的文件服务器进行通信,实现跨平台文件操作。本文将详细介绍如何使用smbj中的DiskShare与File API来进行文件操作。 ## 什么是DiskShare? DiskShare是smbj中用于表示SMB共享的类,它提供了对共享文件夹的各种操作方法。

gitblog_00221的博客 321

【SA8155P】AIS Camera相关内容的简单介绍

【SA8155P】AIS Camera相关内容的简单介绍

静谧、淡雅 1699

SMB操作远程文件

SMB远程操作文件 下载远程文件,逐行修改符合条件的行内容,将修改完的文件重新上传到指定远程目录下 主要注意访问的url格式为: smb://账号user:密码password@访问的ip/要访问的文件路径/文件.txt package com.jidian.mdcs.util; import jcifs.smb.SmbFile; import jcifs.smb.SmbFileInputStream; import jcifs.smb.SmbFileOutputStream; import lom

weixin_44181671的博客 2790

硬核反坑!YOLOv5训练避坑指南:根治梯度消失、不收敛、检测漏框三大核心问题(附实战代码+调优清单)

数据是基础,超参数是关键,模型是工具,训练策略是保障。梯度消失、不收敛、检测漏框这三大问题,本质上都是“数据-模型-训练”不匹配的结果。梯度消失/爆炸:优先调整学习率策略+梯度裁剪,其次优化模型结构;训练不收敛:优先清洗数据集,其次调优超参数,最后检查配置文件;检测漏框:优先重新聚类锚框,其次增强浅层特征,最后调整推理参数。YOLOv5训练的最高境界,不是调参,而是让数据、模型、训练策略三者完美匹配。按本文的方法反坑,你的YOLOv5训练一定能一次成功!🚀。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 233

6.8 点云相关软件——CoProcess

摘要 CoProcess是华测导航研发的三维点云全流程处理平台,支持海量数据浏览、编辑及多类型成果输出,适配地形测绘、道路建设等行业需求。软件采用模块化设计,包含基础功能(数据导入、分类、建模等)和行业定制模块(地形、道路、矿山等),支持多格式数据交互与自动化处理,显著提升作业效率。相比Lidar360,CoProcess操作更简便、性价比更高;相比开源工具CloudCompare,其行业适配性与专业功能更优。2025版本优化了数据处理性能与智能算法,需授权激活高级功能,适合商业项目应用。

qq625924821的博客 248

SMB操作

smb是一种网络文件协议,具体服务器配置参看 以下是一些常用的代码操作 import jcifs.smb.NtlmPasswordAuthentication; import jcifs.smb.SmbFile; //认证 NtlmPasswordAuthentication ntl=new NtlmPasswordAuthentication("server","username","p...

lw18751836671的专栏 504

23、电器元件符号及封装大全(2025版本)

总计28类电器元件符号和封装。

XU157303764的博客 2652

java常用操作方法(六) 远程文件操作 RemoteFileUtil

package com.jinqiao.util; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.InputStream; import jav...

peipeihequnqun的博客 802

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Atitit 文件远程传输读写协议 scp http ftp nfs webdav smb D:\Program Files\Git\usr\bin\scp.exe 4.密码安全策略不完善 在

Atitit 文件远程传输读写协议  scp http ftp nfs webdav smb D:\Program Files\Git\usr\bin\scp.exe  4.密码安全策略不完善在互联网早期,文件传输协议(FTP)并没有对密码安全作出规定。在FTP客户端和服务器端,数据以明文的形式传输,任何对通讯路径上的路由具有控制能力的人,都可以通过嗅探获取你的密码和数据。我们当然可以使用SSL封...

attilax的专栏 694

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

将远程目录中的文件进行读取

通常将远程共享目录中进行读取的时候,需要输入登陆的用户和密码,来判断用户是否有权限进行访问,在代码中需要将用户的信息设置进去,来获取该目录的访问权限等;代码如下:   public class CopyNetFileUtil { private static final Logger logger = Logger.getLogger(CopyNetFileUtil.class);  /**...

Harold 256

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

如何把家里 NAS 挂载到公司电脑当“本地盘”用?(Windows & Mac 通过SMB协议挂载NAS硬盘教程,节点小宝异地组网版)

摘要:本文介绍如何通过节点小宝异地组网技术,将家庭NAS挂载到公司电脑作为本地盘使用。方法利用SMB协议建立虚拟局域网,让Windows和Mac系统像访问本地硬盘一样直接操作NAS文件。教程包含详细步骤:确认SMB服务开启、获取NAS组网IP、Windows映射网络驱动器、Mac连接服务器等操作指南。该方案能显著提升远程办公效率,支持直接编辑、拖拽和搜索NAS文件,无需反复下载上传。文章还解答了常见连接问题,推荐需要频繁访问家庭NAS文件的用户采用这种"人机合一"的下一代文件管理方式。

猫头虎技术团队:授渔优于赠鱼,兴趣引领智慧,探索之乐尤显珍贵。商务合作+:Libin9iOak ,万粉变现+:优快云WF,猫头虎承诺每年免费为100名C站创作者做账号流量诊断服务!全网搜:猫头虎技术团队,点击文章底部名片或直接私信我一切皆可谈,快找虎哥! 3万+
上一篇: oracle 获取最大日期记录
下一篇: java的IO
Y_JY
博客等级 码龄15年 7粉丝 42原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值