前提・実現したいこと
ディレクトリを1つ指定してその中身を表示していきたい。この時ディレクトリの中にディレクトリがある場合その中身も表示していきたいので、ディレクトリかファイルかを判断したいのですがその判定が必ずfalseになってしまいます。
実行結果
「かく」と「確認2」はディレクトリです。
かく 確認2 落書き.txt -------------- かく 確認2 落書き.txt かくはファイルです 確認2はファイルです 落書き.txtはファイルです
該当のソースコード
java
1import java.io.File; 2import java.nio.file.Files; 3 4public class FileTest { 5 6 //ディレクトリかどうか判別しディレクトリならtrueを返す 7 public boolean checkdir(File name){ 8 if(name.isDirectory()){ 9 System.out.println(name +"はディレクトリです"); 10 return name.isDirectory(); 11 }else{ 12 System.out.println(name + "はファイルです"); 13 return name.isDirectory(); 14 } 15 } 16 17 public static void main(String[] args){ 18 FileTest file = new FileTest(); 19 File dir = new File("確認"); 20 //文字列として取得 21 String[] dirlist = dir.list(); 22 //File オブジェクトとして取得 23 File[] dirFilelist = dir.listFiles(); 24 //取得した文字列データを画面出力 25 for(int i = 0;i< dirlist.length;i++){ 26 System.out.println(dirlist[i]); 27 } 28 System.out.println("--------------"); 29 //取得したFileオブジェクトデータを画面出力 30 for(int i =0;i < dirlist.length;i++){ 31 System.out.println(dirFilelist[i].getName()); 32 } 33 34 //checkdirを実行しディレクトリだった場合tmpに保存 35 String[][] tmp = new String[100][]; 36 for(int i = 0;i< dirlist.length;i++){ 37 File dire = new File(dirlist[i]); 38 boolean check = file.checkdir(dire); 39 if(check){ 40 tmp[i] = dirlist; 41 } 42 } 43 } 44}
追記
###実行結果
「かく」と「確認2」はディレクトリです。
かく 確認2 落書き.txt -------------- かく 確認2 落書き.txt dire =かく getAbsolutePath =C:\Users\src\main\java\かく かくはファイルです dire =確認2 getAbsolutePath =C:\Users\src\main\java\確認2 確認2はファイルです dire =落書き.txt getAbsolutePath =C:\Users\src\main\java\落書き.txt 落書き.txtはファイルです
###ソースコード
以下の文を追加しました
//checkdirを実行しディレクトリだった場合tmpに保存 String[][] tmp = new String[100][]; for(int i = 0;i< dirlist.length;i++){ File dire = new File(dirlist[i]); //追加 System.out.println(""); System.out.println("dire =" + dire); System.out.println("getAbsolutePath =" + dire.getAbsolutePath()); boolean check = file.checkdir(dire); if(check){ tmp[i] = dirlist; }
回答2件
あなたの回答
tips
プレビュー