All pastes #588159 Raw Edit

Anonymous

public text v1 · immutable
#588159 ·published 2007-06-25 11:43 UTC
rendered paste body
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.Arrays;
import gnu.getopt.Getopt;

class DosLikeTreeCoreCode {
    private String filepath;
    public boolean dontShowHiddenFiles = false;
    
    DosLikeTreeCoreCode() {
        filepath = ".";
    }
    
    DosLikeTreeCoreCode(String arg) {
        filepath = arg;
    }
    
    private String convertToSanePath(String arg) {
        String path;
        if(!filepath.endsWith("/"))
            return (path = filepath + "/" + arg);
        else
            return (path = filepath + arg);
    }
    
    private boolean isDirectory(String arg) {
        String path = convertToSanePath(arg);
        File f = new File(path);
        if(f.isDirectory())
            return true;
        else
            return false;
    }
    
      private boolean isHidden(String arg) {
        String path = convertToSanePath(arg); 
        File f = new File(path);
        if(f.isHidden())
            return true;
        else
            return false;
    }
    
    public void listDirectoryContents() {
        System.out.println(filepath);
        File f = new File(filepath);
        String[] filelist = f.list();
        List<String> directories = new ArrayList<String>();
        List<String> files = new ArrayList<String>();
        
        int longestName = 0;
        int spacing = 0;
        
        Arrays.sort(filelist);
        
        for(int i=0;i<filelist.length;i++) {
            if(filelist[i].length()>longestName&&!isHidden(filelist[i]))
                longestName = filelist[i].length();
            
            if(isDirectory(filelist[i])&&!isHidden(filelist[i]))
                directories.add(filelist[i]);
            else if(!isHidden(filelist[i]))
                files.add(filelist[i]);
        }
        
        for(int i=0;i<directories.size();i++) {
            System.out.print(directories.get(i) + "/");
            spacing = longestName - directories.get(i).length();
            
            for(int j=0; j<spacing;j++) {
                System.out.print(" ");
            }
            
            System.out.print(" <DIR>");
            System.out.println();
        }
        for(int i=0;i<files.size();i++) {
            System.out.println(files.get(i));
        }
    }
}
public class simpleJavaApp { 
    public static void main(String[] args) {
        try {
            DosLikeTreeCoreCode c = new DosLikeTreeCoreCode(args[0]);
            c.dontShowHiddenFiles = true;
            c.listDirectoryContents();
        } catch (ArrayIndexOutOfBoundsException e) {
            DosLikeTreeCoreCode c = new DosLikeTreeCoreCode();
            c.dontShowHiddenFiles = true;
            c.listDirectoryContents();
        }
    }
}