jrao
jrao

Reputation: 47

Problem while trying to access files in sub-directories using 0.11.5 SMBJ library

I would like to check if a file exists in a particular directory in shared drive using SMBJ library. For example this is the file I want to check the existence of - \\server1\CF\Sub1\Sub2\Sub3\test.txt

Below is the code snippet I'm using

      SMBClient smbClient = new SMBClient(SmbConfig.builder().withMultiProtocolNegotiate(true).build());
      Connection connection = smbClient.connect("server1");
      AuthenticationContext ac = new AuthenticationContext(USER_NAME, PWD.toCharArray(),"DOMAIN");
      Session session = connection.authenticate(ac);

      DiskShare share = (DiskShare) session.connectShare("CF");
      boolean exists = share.fileExists("Sub1\\Sub2\\Sub3\\test.txt")

eventhough the specified path is correct I get an exception

com.hierynomus.mssmb2.SMBApiException: STATUS_PATH_NOT_COVERED (0xc0000257): Create failed for \\server1\CF\Sub1\Sub2\Sub3\test.txt
at com.hierynomus.smbj.share.Share.receive(Share.java:380)
    at com.hierynomus.smbj.share.Share.sendReceive(Share.java:359)
    at com.hierynomus.smbj.share.Share.createFile(Share.java:156)
    at com.hierynomus.smbj.share.DiskShare.createFileAndResolve(DiskShare.java:75)
    at com.hierynomus.smbj.share.DiskShare.access$100(DiskShare.java:55)
    at com.hierynomus.smbj.share.DiskShare$2.apply(DiskShare.java:109)
    at com.hierynomus.smbj.share.DiskShare$2.apply(DiskShare.java:105)
    at com.hierynomus.smbj.paths.PathResolver$1.resolve(PathResolver.java:32)
    at com.hierynomus.smbj.paths.SymlinkPathResolver.resolve(SymlinkPathResolver.java:62)
    at com.hierynomus.smbj.share.DiskShare.resolveAndCreateFile(DiskShare.java:105)
    at com.hierynomus.smbj.share.DiskShare.open(DiskShare.java:65)
    at com.hierynomus.smbj.share.DiskShare.openDirectory(DiskShare.java:151)
    at com.hierynomus.smbj.share.DiskShare.list(DiskShare.java:258)
    at com.hierynomus.smbj.share.DiskShare.list(DiskShare.java:231)

I can print available files under Sub1 by doing the following but cannot do the same for path = "Sub1\Sub2"

      for (FileIdBothDirectoryInformation f : share.list("Sub1")) {
        Logger.log("File : " + f.getFileName());
      }

Is there something wrong in how the path is formed?

Upvotes: 1

Views: 640

Answers (0)

Related Questions