import java.util.*;
import java.text.*;
import java.net.*;
import jcifs.smb.*;
public class FileInfo {
static final String TYPES[] = {
"TYPE_COMM",
"TYPE_FILESYSTEM",
"TYPE_NAMED_PIPE",
"TYPE_PRINTER",
"TYPE_SERVER",
"TYPE_SHARE",
"TYPE_WORKGROUP"
};
public static void main( String argv[] ) throws Exception {
int i, start, end;;
SimpleDateFormat sdf = new SimpleDateFormat( "MM/dd/yy hh:mm:ss a" );
GregorianCalendar cal = new GregorianCalendar();
SmbFile f;
if( argv.length < 2 ) {
throw new IllegalArgumentException( "usage: FileInfo <url> <opindex>" );
}
if( argv.length == 3 ) {
SmbFile tmp = new SmbFile( argv[0] );
f = new SmbFile( tmp.toString(), argv[1] );
start = Integer.parseInt( argv[2] );
} else {
f = new SmbFile( argv[0] );
start = Integer.parseInt( argv[1] );
}
sdf.setCalendar( cal );
i = end = start;
do {
switch( i ) {
case 0:
System.out.println( " toString: " + f.toString() );
break;
case 1:
System.out.println( " toURL: " + f.toURL() );
break;
case 2:
System.out.println( " getName: " + f.getName() );
break;
case 3:
System.out.println( " length: " + f.length() );
break;
case 4:
System.out.println( " getLastModified: " + sdf.format( new Date( f.getLastModified() )));
break;
case 5:
System.out.println( " isHidden: " + f.isHidden() );
break;
case 6:
System.out.println( " isFile: " + f.isFile() );
break;
case 7:
System.out.println( " isDirectory: " + f.isDirectory() );
break;
case 8:
System.out.println( " hashCode: " + f.hashCode() );
break;
case 9:
System.out.println( " getUncPath: " + f.getUncPath() );
break;
case 10:
System.out.println( " getType: " + TYPES[f.getType()] );
break;
case 11:
System.out.println( " getShare: " + f.getShare() );
break;
case 12:
System.out.println( " getServer: " + f.getServer() );
break;
case 13:
System.out.println( " getPath: " + f.getPath() );
break;
case 14:
System.out.println( " getParent: " + f.getParent() );
break;
case 15:
System.out.println( " lastModified: " + sdf.format( new Date( f.lastModified() )));
break;
case 16:
System.out.println( "getDiskFreeSpace: " + f.getDiskFreeSpace() );
break;
case 17:
System.out.println( " getDate: " + sdf.format( new Date( f.getDate() )));
break;
case 18:
System.out.println( "getContentLength: " + f.getContentLength() );
break;
case 19:
System.out.println( "getCanonicalPath: " + f.getCanonicalPath() );
break;
case 20:
System.out.println( " exists: " + f.exists() );
break;
case 21:
System.out.println( " canRead: " + f.canRead() );
break;
case 22:
System.out.println( " canWrite: " + f.canWrite() );
break;
case 23:
ACE[] security = f.getSecurity(true);
System.out.println( " Security:" );
for (int ai = 0; ai < security.length; ai++) {
System.out.println(security[ai].toString());
}
System.out.println(" Share Perm:");
security = f.getShareSecurity(true);
for (int ai = 0; ai < security.length; ai++) {
System.out.println(security[ai].toString());
}
break;
case 24:
System.out.println( " getDfsPath: " + f.getDfsPath() );
break;
}
i++;
if( i == 25 ) {
i = 0;
}
} while( i != end );
}
}