Android 访问局域网内的共享文件夹

在网上搜索资料:
发现jcifs.jar连不上Windows10的共享文件夹

error:jcifs.smb.SmbException: Failed to connect: 0.0.0.0<00>/192.168.1.7
    jcifs.util.transport.TransportException
    java.net.SocketException: Connection reset

网上的解释是windows10默认不支持SMB 1.0
看了一下设置,确定是:
Android 访问局域网内的共享文件夹_第1张图片
把SMB1.0勾起来,解决之后的Log:
Android 访问局域网内的共享文件夹_第2张图片
好了,问题解决了。但是我们不可能让用户自己去打开SMB1的支持。在网上找到了一个可以支持SMB2.0/3.0的jar包
参考链接
所需jar包下载链接
使用指南

效果:
在这里插入图片描述

Dome代码:

SMBClient client = new SMBClient();
                try (Connection connection = client.connect("主机IP")) {
                    AuthenticationContext ac = new AuthenticationContext("用户名", "密码".toCharArray(), "DOMAIN");
                    Session session = connection.authenticate(ac);
                    LogUtils.d("share folder : ");

                    try {
                        DiskShare share = (DiskShare) session.connectShare("磁盘");
                        //这里遍历了该磁盘内文件夹的txt文件
                        for (FileIdBothDirectoryInformation f : share.list("文件夹名", "*.TXT")) {
                            Log.d("share folder ", " share folder File : " + f.getFileName());
                        }
                    }catch (Exception e){
            
                    }
                } catch (IOException e) {
                    e.printStackTrace();
                
                }

主机IP:192.168.x.x
磁盘:G
文件夹名:G盘下的文件夹名
用户密码:访问该主机的用户密码

你可能感兴趣的:(Android)