rendered paste bodyimport 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();
}
}
}