首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SMBJ:如何打印特定子文件夹中的所有文件

SMBJ:如何打印特定子文件夹中的所有文件
EN

Stack Overflow用户
提问于 2018-11-02 10:51:01
回答 1查看 3.2K关注 0票数 0

我面临的问题是打印所有文件属于一个特定的子文件夹在windows。

概述:

我有一个windows VM,其IP地址为10.162.12.12

我想打印C:\MyFolder\MySubFolder下面的所有文件名

目前“MySubFolder”包含4个cmd文件,即a.cmd、b.cmd、c.cmd、d.cmd

代码语言:javascript
复制
 try (Connection connection = client.connect("10.162.x.x")) {

        AuthenticationContext ac = new AuthenticationContext("userName", "pwd".toCharArray(), "domainName");
        Session session = connection.authenticate(ac);

        // Connect to Share
        try (DiskShare share = (DiskShare) session.connectShare("MyFolder")) {
            for (FileIdBothDirectoryInformation f : share.list("/MySubFolder")) {
                System.out.println("File : " + f.getFileName());
            }
        } catch (Exception e) {
            e.printStackTrace();
        }

我不知道如何传递我的"C“驱动器信息和路径,即在哪里传递path.Currently,我得到以下错误:

15:48:17.991 INFO c.h.smbj.connection.Connection -成功连接到: 10.162.12.12 15:48:18.826 INFO c.h.smbj.connection.Connection -在10.162.12.12成功地验证了userName,会话是140737488355349 15:48:18.826 INFO com.hierynomus.smbj.session.Session -在会话140737488355349上连接到\ 10.162.12.12 \MyFolder 15:48:19.357 INFO com.hierynomus.smbj.session.Session -从主机10.162.12.12注销会话140737488355349.hierynomus.smbj.session.Session.connectShare(Session.java:144) at com.olf.agon.smbj.SMBFile3Trail.main(SMBFile3Trail.java:36)

我只想知道如何将该值传递给我的connectionShare()方法和list()方法,以便能够连接到"\10.162.12.12\C\MyFolder“。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-02 13:02:45

我解决了这个问题:

代码语言:javascript
复制
SmbConfig smbConfig = SmbConfig
            .builder()
            .withMultiProtocolNegotiate(true)
            .withTransportLayerFactory(new AsyncDirectTcpTransportFactory<>())
            .withSigningRequired(true).build();

    final String SHARE_NAME = "C$";

    final String LOCAL_PATH = "MyFolder/MySubFolder";

    SMBClient client = new SMBClient(smbConfig);

    try (Connection connection = client.connect("10.162.12.12")) {

        AuthenticationContext ac = new AuthenticationContext("userName", "pwd".toCharArray(), "domainName");
        Session session = connection.authenticate(ac);

        // Connect to Share
        try (DiskShare share = (DiskShare) session.connectShare(SHARE_NAME)) {
            for (FileIdBothDirectoryInformation f : share.list(LOCAL_PATH)) {
                System.out.println("File : " + f.getFileName());
            }
        } catch (Exception e) {
            e.printStackTrace();
        }


    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        client.close();
    }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53117162

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档