[jcifs] Batching command in CIFS

Cellina Lin cellina at gmail.com
Fri Jan 21 04:19:18 GMT 2005


All,

I am trying to use the "batching command" features of jCIFS library. I
wish to control which SMB commands to be batched together as it is
said in the document.

However , it seems that the commands is not controlled ! I can
seperate the default batched command such as "SessionSetupAndX and
TreeConnectAndX " by setting
jcifs.smb.client.SessionSetupAndX.TreeConnectAndX = 0. But, other
setting doesn't help to combine the command.

Does any body have any idea about this?

This is my code . Very simple and straight forward.
=========================================

import jcifs.smb.*;
import java.io.*;
import jcifs.Config;
import java.util.*;

public class Batching {

    public static void main( String argv[] ) throws Exception {
       
        Config.setProperty( "jcifs.smb.client.useBatching","true"); 
        
        Config.setProperty(
"jcifs.smb.client.SessionSetupAndX.TreeConnectAndX", "1" );
        Config.setProperty(
"jcifs.smb.client.TreeConnectAndX.CheckDirectory", "1" );
        Config.setProperty(
"jcifs.smb.client.TreeConnectAndX.CreateDirectory", "1" );
        Config.setProperty( "jcifs.smb.client.TreeConnectAndX.Delete", "1" ); 
        Config.setProperty(
"jcifs.smb.client.TreeConnectAndX.DeleteDirectory", "1" );
        Config.setProperty( "jcifs.smb.client.TreeConnectAndX.OpenAndX", "1" );
        Config.setProperty( "jcifs.smb.client.TreeConnectAndX.Rename", "1" ); 
        Config.setProperty(
"jcifs.smb.client.TreeConnectAndX.Transaction", "1" );
        Config.setProperty(
"jcifs.smb.client.TreeConnectAndX.QueryInformation", "1" );
        Config.setProperty( "jcifs.smb.client.OpenAndX.ReadAndX ", "1" );   
        Config.setProperty( "jcifs.smb.client.NTCreateAndX.ReadAndX", "1" ); 
        Config.setProperty( "jcifs.smb.client.ReadAndX.Close", "1" );  
        Config.setProperty( "jcifs.smb.client.WriteAndX.Close", "1" );         
        Config.setProperty( "jcifs.smb.client.WriteAndX.ReadAndX", "1" ); 
        Config.setProperty( "jcifs.smb.client.WriteAndX.Close", "1" ); 

        
        //copy to CIFS server
        if (argv[1].startsWith("SMB://")){ 
           SmbFile from = new SmbFile( argv[0] );
           SmbFile to = new SmbFile( argv[1] );           
           from.copyTo( to );
        
        //copy to local
        } else  {
           SmbFileInputStream si = new SmbFileInputStream ( argv[0] );
           FileOutputStream fo = new FileOutputStream ( argv[1] );
           
           byte[] b = new byte[1024];
           int n, tot = 0;
           while(( n = si.read( b )) > 0 ) {
              fo.write(b);
              tot += n;           
           }
           si.close();
           fo.close();
           System.out.println(tot+" bytes copied"); 
        } 
           
    }
}


More information about the jcifs mailing list