Java读取共享文件夹下面的文件(利用smb协议)

2021-10-04 00:00:00 读取 协议 共享文件夹

一、先给需要共享文件电脑创建smb协议

1.1 控制面板->程序->启用或关闭window功能->smb1.0

《Java读取共享文件夹下面的文件(利用smb协议)》

 二、设置共享文件

2.1 选择你想要共享的文件夹设置everyone或者指定的用户

《Java读取共享文件夹下面的文件(利用smb协议)》2.2 在高级共享里面设置成共享此文件夹

《Java读取共享文件夹下面的文件(利用smb协议)》

 2.3 打开网络共享中心,进行无密码共享(有密码也可以,无密码是为了更方便)

《Java读取共享文件夹下面的文件(利用smb协议)》2.4 测试  \\ip\文件夹

三、准备好对应的jar

链接:https://pan.baidu.com/s/12uK4yvXSGBqNoFB_PoYHRg 
提取码:jcif 

3.1 下载好了以后放到本地maven仓库

比如我放到d盘,直接打开cmd运行

mvn install:install-file -Dfile=D:\jcifs-1.3.17.jar -DgroupId=org.jcifs -DartifactId=jcifs -Dversion=1.3.17 -Dpackaging=jar

《Java读取共享文件夹下面的文件(利用smb协议)》

 成功了以后直接引用

<dependency>
   <groupId>org.jcifs</groupId>
   <artifactId>jcifs</artifactId>
   <version>1.3.17</version>
</dependency>

3.2 进行代码测试

 public static void main(String[] args) throws IOException {
        //局域网共享文件,读文件
        //创建远程文件对象  smb://用户名:密码@ip地址/共享的路径/...
        SmbFile smbFile = new SmbFile("smb://192.168.1.8/demo/1.txt");
        // 通过 smbFile.isDirectory();isFile()可以判断smbFile是文件还是文件夹
        //int length = smbFile.getContentLength();// 得到文件的大小
        //byte buffer[] = new byte[length];
        //new SmbFileInputStream(smbFile); // 建立smb文件输入流
        BufferedReader reader = new BufferedReader(new InputStreamReader(new SmbFileInputStream(smbFile), StandardCharsets.UTF_8));//如果有中文乱码,换成gbk试试
        int tempchar = 0;
        while ((tempchar = reader.read()) != -1) {
            if (((char) tempchar) != '\r') {
                System.out.print((char) tempchar);
            }
        }
        reader.close();
    }

3.3 结果

上面代码1.txt运行结果

《Java读取共享文件夹下面的文件(利用smb协议)》

 

    原文作者:java-zh
    原文地址: https://blog.csdn.net/qq_36138652/article/details/122015186
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。

相关文章