PS:背景需求来自Andorid移动端访问Window共享文件夹
工具:
Unity2018.4.36f1 AS2020.3
Jar包如下: 下载链接
smbj-0.11.3.jar slf4j-api-1.7.25.jar mbassador-1.3.0.jar jcifs-1.3.19.jar bcprov-jdk15on-1.69.jar asn-one-0.5.0.jar
什么是smb协议
SMB 一种客户机/服务器、请求/响应协议。通过 SMB 协议,客户端应用程序可以在各种网络环境下读、写服务器上的文件,以及对服务器程序提出服务请求。此外通过 SMB 协议,应用程序可以访问远程服务器端的文件、以及打印机、邮件槽(mailslot)、命名管道(named pipe)等资源
打开smb协议
控制面板-程序-启用或关闭Window功能-勾选SMB 1.0/CIFS 文件共享与支持
开启共享文件夹
开启访问权限:
控制面板--网络和Internet--网络和共享中心--高级共享设置
SMBFile流
建立文件流连接 SmbFile remoteFile = new SmbFile("smb://192.168.1.XXX/Test/"); //可以是文件夹或文件 读文件流: SmbFileInputStream inputStream = new SmbFileInputStream("smb://192.168.1.XXX/Test/a.txt");
写文件流: SmbFileOutputStream outputStream =new FileOutputStream(filePath);//filepath=remoteFile.getpath()获取
//localDir保存到本地文件夹路径
public static void smbGet(String remoteUrl, String localDir)
{
InputStream in = null;
OutputStream outputStream = null;
try {
SmbFile remoteFile = new SmbFile(remoteUrl);
if (remoteFile == null) {
return;
}
String fileName =remoteFile.getName();
int length = remoteFi