Mount

PasswordCredentials cr = new PasswordCredentials(

            "userName", "password", "domain");

// Create a new Mount Point

Mount mt = new Mount("IpAddress","ShareName", cr);

// Close all connections and mount points

Client.stop();

Open, read, write and delete file

PasswordCredentials cr = new PasswordCredentials(

            "userName", "password", "domain");

// Create a new Mount Point

Mount mt = new Mount("IpAddress","ShareName", cr);

Params pr = new File.Params(File.ACCESS_WRITE, File.SHARE_FULL,

                                                          File.DISPOSITION_OPEN, false);

File file = new File(mt, "text.txt", pr);

Buffer buff = new Buffer(DATASIZE);

// read DATASIZE from the begginig of the file.

file.read(buff);

// write the buff from the offset DATASIZE.

file.write(buff);

// mark the file for delete.

file.deleteOnClose();

// close the file.

file.close();

// close the mount point

mt.close();

Delete file by name

PasswordCredentials cr = new PasswordCredentials(

            "userName", "password", "domain");

// Create a new Mount Point

Mount mt = new Mount("IpAddress","ShareName", cr);

File.delete(mt, "text.txt");

// close the mount point

mt.close();

Browsing directory

PasswordCredentials cr = new PasswordCredentials(

            "userName", "password", "domain");

// Create a new Mount Point

Mount mt = new Mount("IpAddress","ShareName", cr);

Directory dir = new Directory(mt, "dir1");

Directory.Entry entry;

System.out.println(DIR + " scan:");

do {

     entry = dir.next();

     if (null != entry)

          System.out.println(entry.name + " : size = " + entry.info.eof);

} while (entry != null);

// close the directory browsing.

dir.close();

// close the mount point

mt.close();

Access via Streaming

PasswordCredentials cr = new PasswordCredentials(

            "userName", "password", "domain");

// Create a new Mount Point

Mount mt = new Mount("IpAddress","ShareName", cr);

// create a new file.

File.Params fileParams = new File.Params(

                     File.ACCESS_READ | File.ACCESS_WRITE |

                     File.ACCESS_DELETE, File.SHARE_FULL,

                     File.DISPOSITION_OPEN_IF, false);

File file = new File(mt, "myCreatedFile.txt", fileParams);

// create output stream

OutputStream outputStream = new SmbOutputStream(file);

// create some data to write

int totalAmountOfData = 1024 * 1024 * 10;

byte [] data = createByteBuffer( totalAmountOfData);

 

// write all the bytes -- buffering is done by TCP networking code

outputStream.write(data);

 

// alternative way of writing all the bytes with a little more control

int amountToWriteEachTime = 1024 * 1024;

int currentPosition = 0;

while (currentPosition < data.length) {

     file.setPosition( currentPosition);

     outputStream.write(data, currentPosition, amountToWriteEachTime);

     currentPosition += amountToWriteEachTime;

}

// close the stream

outputStream.close()

// close the mount point

mt.close();

Enumerate the shares available

Iterator iterator = Network.enumerateShares(smbServer, credentials);

while (iterator.hasNext()) {

Share.Info shareInfo = (Share.Info) iterator.next();

System.out.println("share name = " + shareInfo.name);

}

Enumerate the servers available

 

iterator = Network.enumerateServers(domain, credentials);

while (iterator.hasNext()) {

String serverInfo = (String) iterator.next();

System.out.println("server name = " + serverInfo);

}