- import java.io.*;
- public class FileList {
- public static void main(String[] args) {
- FileList fl = new FileList();
- fl.listFiles(args[0]);
- }
- void listFiles(String fileName) {
- File d = new File(fileName);
- if (!d.isDirectory()) {
- System.out.println(fileName + " is not directory.");
- System.exit(1);
- }
- getSubDirectories(d, 0);
- }
- void getSubDirectories(File d, int nest) {
- printFileAttributes(d, nest);
- File[] filelist = d.listFiles();
- for (int i = 0; i < filelist.length; i++) {
- if (filelist[i].isDirectory()) {
- getSubDirectories(filelist[i], nest + 1);
- } else {
- printFileAttributes(filelist[i], nest + 1);
- }
- }
- }
- void printFileAttributes(File f, int nest) {
- for (int i = 0; i < nest; i++) {
- System.out.print("\t");
- }
- System.out.print("[");
- System.out.print(f.isDirectory()? "d": "f");
- System.out.print(f.canRead()? "r": "-");
- System.out.print(f.canWrite()? "w": "-");
- System.out.print("]");
- System.out.print(f.getName());
- System.out.println();
- }
- }
□ 実行結果
$ java FileList . [drw]. [drw]1 [frw]FileCopy.java [drw]2 [frw]FileCopy.java [frw]Stream01.java : [frw]Stream12.class [frw]Stream12.java [frw]Sysin.java [frw]Sysin2Sysout.class [frw]Sysin2Sysout.java