2017-01-31 6 views
0

複数のディレクトリでテキストファイルを検索しようとしていて、ディレクトリリストにディレクトリパスを追加しようとしています。ディレクトリからファイルを検索する

どうすればいいですか?ここで

私がこれまで持っているものです。

File folder = new File("path\\dir"); 
File folder1 = new File("path\\dir1"); 
ArrayList<File> flielist = new ArrayList<File>(); 
flielist.add(folder); 
flielist.add(folder1); 
for (int i = 0; i < flielist.size(); i++){ 
    File dir = flielist.get(i); 
    System.out.println(dir.getName()); 
    if(dir.listFiles() != null){ 
    for (File file : dir.listFiles()) 
    { 
     String filename = file.getName(); 
     if(filename.equals("rashed")){ 
     System.out.println("found" + file.getPath()); 
     } 
    } 
    } 
} 
+2

[、最小完全、かつ検証例]を作成する方法を、お読みください(http://stackoverflow.com/help/mcve) – GAlexMES

答えて

0
public class FileSearch { 

    private List<String> result; 

    public List<String> getResult() { 
     if (result == null) { 
      result = new ArrayList<String>(); 
     } 
     return result; 
    } 

    public static void main(String[] args) { 
     FileSearch fileSearch = new FileSearch(); 
     fileSearch.search(new File("C:/Users"), "rashed.txt"); 
     int count = fileSearch.getResult().size(); 
     if (count == 0) { 
      System.out.println("\nNo result found!"); 
     } else { 
      System.out.println("\nFound " + count + " result!\n"); 
      for (String matched : fileSearch.getResult()) { 
       System.out.println("Found : " + matched); 
      } 
     } 
    } 

    public void search(File file, String filename) { 
     if (file.isDirectory()) { 
      System.out.println("Searching directory ... " + file.getAbsoluteFile()); 
      //do you have permission to read this directory? 
      if (file.canRead()) { 
       if (file.listFiles() != null) { 
        for (File temp : file.listFiles()) { 
         if (temp.isDirectory()) { 
          search(temp, filename); 
         } else { 
          if (filename.equalsIgnoreCase(temp.getName())) { 
           getResult().add(temp.getAbsoluteFile().toString()); 
          } 
         } 
        } 
       } 
      } else { 
       System.out.println(file.getAbsoluteFile() + "Permission Denied"); 
      } 
     } 
    } 
} 
+0

ありがとうございますが、まだ動作しません、私はこのエラーを取得しています。行にNullPointerException :: if(filename.equalsIgnoreCase(temp.getName()))??何か案が ? –

+0

あなたはあなたのディレクトリパスを設定する必要があります – mhshimul

+0

私は確かに、それは私がresult.add(temp.getAbsoluteFile()。toString())を削除するときにのみ動作します。 –

関連する問題