import
1import java.util.ArrayDeque; 2import java.util.Queue; 3 4public class FileTest{ 5 public static void main(String[] args){ 6 File dir = new File("src"); 7 File[] dirFilelist = dir.listFiles(); 8 Queue<File> queue = new ArrayDeque<File>(); 9 if(dirFilelist != null){ 10 for(int i=0;i < dirFilelist.length; i++){ 11 if(dirFilelist[i].isDirectory()){ 12 queue.add(dirFilelist[i]); 13 System.out.println(queue); 14 }else if(dirFilelist[i].isFile()){ 15 queue.add(dirFilelist[i]); 16 System.out.println(queue); 17 } 18 } 19 }else{ 20 System.out.println("中身はカラです"); 21 } 22 System.out.println("------------------------------------------------------------"); 23 24/* 25上のコードはどのような状態かを可視化しただけ. 26 27 28*/ 29 30 } 31} 32 33 34コード 35```以下の条件を満たすように、ファイルの一覧データを生成し、ファイルに書き出すプログラムを 定義しなさい。 36 1) キーボードから「一覧を生成するディレクトリ名」と「出力ファイル名」を入力する。 37 2) 一覧は指定したディレクトリ名をルートとする木構造を幅優先の順序で探索し、各ディレクトリの構成要素を表示する。 38注:File dir = new File("src")の引数”src”はこのプログラムを実行するディレクトリから見えるディレクトリのパス を指定する必要があります。この名前が適切でないと NullPointerExceptiom というエラーになりま す。File dir = new File("src"); において new できなかったため、dir が nullということです。 39 40本題 41src内部にあるディレクトリをキューの中に入れ、 42再び引数に"src/下の階層にあるディレクトリ"を指定してそのディレクトリの中にあるものを取り出し幅探索を繰り返していきたいのですが、上記の注意のように実行するディレクトリから見えるパスを指定する必要がある。ソースの中から次のディレクトリに行くためにはどうすればよいでしょうか。 43 44最終的に実現にしたいことは"src"の中にあるディレクトリやファイルをすべて取り出し一覧にして表示させることです.
回答1件
あなたの回答
tips
プレビュー