SMBJ: Как распечатать все файлы, присутствующие в определенной подпапке - PullRequest
0 голосов
/ 02 ноября 2018

У меня проблема с печатью всех файлов, относящихся к определенной подпапке в Windows VM.

Обзор:

У меня есть виртуальная машина Windows с IP-адресами 10.162.12.12

Я хочу напечатать все имена файлов, имеющиеся в C: \ MyFolder \ MySubFolder

В настоящее время MySubFolder содержит 4 cmd-файла, т.е. a.cmd, b.cmd, c.cmd, d.cmd

 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" и путь, то есть, где пройти путь. В настоящее время я получаю следующую ошибку:

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, сеанс 140737488355349 15: 48: 18.826 INFO com.hierynomus.smbj.session.Session - Соединение с \ 10.162.12.12 \ MyFolder в сеансе 140737488355349 15: 48: 19.357 INFO com.hierynomus.smbj.session.Session - выход из сеанса 140737488355349 с хоста 10.162.12.12 com.hierynomus.mssmb2.SMBApiException: STATUS_BAD_NETWORK_NAME (0xc00000cc): не удалось подключиться к 10.162.12.12 \ MyFolder на com.hierynomus.smbj.session.Session.connectTree (Session.java:173) на com.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".

1 Ответ

0 голосов
/ 02 ноября 2018

Мне удалось решить эту проблему:

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();
    }
...