package com.smb;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import jcifs.smb.SmbFile;
import jcifs.smb.SmbFileInputStream;
import jcifs.smb.SmbFileOutputStream;
public class Smbtest {
/**
* 从局域网中共享文件中得到文件并保存在本地磁盘上
* @param remoteUrl 共享电脑路径 如:smb//administrator:123456@172.16.10.136/smb/1221.zip , smb为共享文件
* 注:如果一直出现连接不上,有提示报错,并且错误信息是 用户名活密码错误 则修改共享机器的文件夹选项 查看 去掉共享简单文件夹的对勾即可。
* @param localDir 本地路径 如:D:/
*/
public static void smbGet(String remoteUrl,String localDir){
InputStream in = null;
OutputStream out = null;
try {
SmbFile smbFile = new SmbFile(remoteUrl);
String fileName = smbFile.getName();
File localFile = new File(localDir+File.separator+fileName);
in = new BufferedInputStream(new SmbFileInputStream(smbFile));
out = new BufferedOutputStream(new FileOutputStream(localFile));
byte []buffer = new byte[1024];
while((in.read(buffer)) != -1){
out.write(buffer);
buffer = new byte[1024];
}
} catch (Exception e) {
e.printStackTrace();
}finally{
try {
out.close();
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
/**
* 把本地磁盘中的文件上传到局域网共享文件下
* @param remoteUrl 共享电脑路径 如:smb//administrator:123456@172.16.10.136/smb
* @param localFilePath 本地路径 如:D:/
*/
public static void smbPut(String remoteUrl,String localFilePath){
InputStream in = null;
OutputStream out = null;
try {
File localFile = new File(localFilePath);
String fileName = localFile.getName();
SmbFile remoteFile = new SmbFile(remoteUrl+"/"+fileName);
in = new BufferedInputStream(new FileInputStream(localFile));
out = new BufferedOutputStream(new SmbFileOutputStream(remoteFile));
byte []buffer = new byte[1024];
while((in.read(buffer)) != -1){
out.write(buffer);
buffer = new byte[1024];
}
} catch (Exception e) {
e.printStackTrace();
}finally{
try {
out.close();
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
smbPut("smb://administrator:123456@172.16.10.136/smb", "E:/1221.zip");
smbGet("smb://administrator:123456@172.16.10.136/smb/1221.zip", "D:/");
}
}
分享到:
相关推荐
它紧密地遵循CIFS规范(是Microsoft Windows平台标准文件共享协议),支持Unicode,命令管道,批处理,线程化调用者的IO复用,加密认证,完整事务,域/工作组/主机/共享/文件枚举,NetBIOS 套接字和名称服务,smb://...
使用smbj.jar访问共享文件夹,支持SMB2/SMB3,用于解决使用jcifs.jar不支持SMB2/SMB3的问题
可从http://jcifs.samba.org/下载 SmbFileInputStream,SmbFileOutputStream,SmbFile这里对应着io里的FileInputStream FileOutputStream,File,如果对io比较熟悉那么jcifs比较容易应用 下面一个最简单的例子说明...
SMB协议现在是局域网上用于服务器文件访问和打印的协议。象SMB协议一样,CIFS在高层运行,而不象TCP/IP协议那样运行在底层。CIFS可以看做是应用程序协议如文件传输协议和超文本传输协议的一个实现。 SMB协议是...
node-smb-server, SMB文件共享协议的100%位JavaScript实现 用于 Node.js的 SMB服务器 Overwiewnode-smb-server 是 smb/cifs文件共享协议的开源JavaScript实现。一些亮点:纯 JavaScript完全可以配置/自定义可以扩展...
JAVA SMB共享文件夹操作文件jar支持smb2、smb3.rar
SMB共享协议解析
最近tomcat做了负载均衡,碰到一个难题,就是上传文件的共享问题。 最后使用的解决方案是使用一个共享地址,该地址可以被多个服务器共同访问。...实现上传文件到网络共享文件夹和从网络共享文件夹下载文件
jcifs-1.3.19.jar 包,用于SMB协议 ,以实现远程读取文件。jcifs-1.3.19.jar 包,用于SMB协议 ,以实现远程读取文件。
最近tomcat做了负载均衡,碰到一个难题,就是上传文件的共享问题。 最后使用的解决方案是使用一个共享地址,该地址可以被多个服务器共同访问。...实现上传文件到网络共享文件夹和从网络共享文件夹下载文件
读取网络共享文件夹数据。 用法:String host = "192.168.xxx.xxx"; String username = "username"; String password = "password"; //samba服务器上的文件 String filePath = "/a/b/xxx.pdf"; String demo1...
SMA/DO-214AC SMB/DO-214AA SMC/DO-214AB 封装 alitum格式 protel
SMB协议jar 支持SMB2.0/部分SMB3.0
大势至共享文件管理系统集成了共享文件安全管理功能,可以设置共享文件访问权限。下面小编给大家介绍下共享文件只读不能复制、设置共享文件禁止复制、共享文件限制复制下载的方法,一起看看吧
请从http://jcifs.samba.org/下载最新版本的jCIFS。 您只需使用Paths.get(new URI(“ smb:// hostname / share / filename”))即可访问cifs / smb文件,并使用实用程序类java.nio.file操作返回的Path。文件。 ...
SMA/DO-214AC SMB/DO-214AA SMC/DO-214AB 封装 99SE格式,下载直接可用,不是文档
支持SMB2(2.02协议级别),部分支持SMB3 删除全局状态 允许按上下文配置 通过SLF4J记录 删除Java 1.7之前的支持 统一身份验证子系统,NTLMSSP / Kerberos支持 大型ReadX / WriteX支持 流列表操作 ...
剖析局域网中访问共享文件夹时的连接过程,对于想分析这种通信方式的朋友会有非常大的指导作用。
来自网络协议分析论坛 - 编码讨论区 - SMB/CIFS协议分析 集合