2012-01-19 13 views
6

すべての ".txt"ファイルをフォルダから読み込む必要があります(このフォルダを選択する必要があります)。Javaを使用して1つのフォルダからすべてのテキストファイルを取得するには?

どうすればよいですか?

+3

をする方法をオーバーライドメソッドを受け入れるfilenamefilterインスタンスを作成しますMVC? –

+2

何を試してみましたか?あなたと同様のやり方でuをコントローラープログラム内のjavaでやります。 –

+0

フォルダーはクライアント側にありますか? – Manish

答えて

10
あなたはそれが{

IOExceptionがかなり簡単な使用 のpublic static無効メイン(文字列[] args)スローで filenamefilterクラスを使用することができます

File f = new File("c:\\mydirectory"); 

    FilenameFilter textFilter = new FilenameFilter() { 
     public boolean accept(File dir, String name) { 
      return name.toLowerCase().endsWith(".txt"); 
     } 
    }; 

    File[] files = f.listFiles(textFilter); 
    for (File file : files) { 
     if (file.isDirectory()) { 
      System.out.print("directory:"); 
     } else { 
      System.out.print("  file:"); 
     } 
     System.out.println(file.getCanonicalPath()); 
    } 

} 
はちょうどあなたがタスクSPRIに関連してどのように

+0

['FilenameFilter'](http://docs.oracle.com/javase/7/docs/api/java/io/FilenameFilter.html)に言及したのは+1です。 –

1

directoryを読んで、その中を反復する必要があります。

File directory= new File("user submits directory"); 
for (File file : directory.listFiles()) 
{ 
    if (FileNameUtils.getExtension(file.getName()).equals("txt")) 
    { 
     //dom something here. 
    } 
} 

FileNameUtils.getExtension(:

が、それはあなたがすでにディレクトリを持っていると仮定するとMVCについて

+0

ディレクトリはクライアント側にありますが、これは機能しません。 – Manish

2

よりもファイルシステムへのJavaアクセスの詳細な質問です、あなたはこのような何かを行うことができます)はhereです。

編集:あなたがしたいように思われるのは、Webブラウザからファイル構造にアクセスすることです。 this以前の投稿によると、セキュリティ上の理由からあなたがしたいことはできません。

+0

ディレクトリがクライアント側にありますが、これは機能しません。 – Manish

+0

これは、ユーザーがファイルを選択すると、ファイルコンストラクタへのパスを渡します –

+0

これは、選択したフォルダがサーバー側にある場合にのみ機能します(ここではそうではないようです)。サーバー側からクライアント側のフォルダにアクセスすることはできません。 – Manish

1

ディレクトリ内のすべてのテキストファイルを検索する次の関数を記述しました。

public static void parseDir(File dirPath) 
    { 

     File files[] = null; 
     if(dirPath.isDirectory()) 
     { 
      files = dirPath.listFiles(); 
      for(File dirFiles:files) 
      { 

       if(dirFiles.isDirectory()) 
       { 
        parseDir(dirFiles); 
       } 
       else 
       { 
        if(dirFiles.getName().endsWith(".txt")) 
        { 
         //do your processing here.... 
        } 
       } 
      } 

     } 
     else 
     { 
      if(dirPath.getName().endsWith(".txt")) 
      { 
       //do your processing here.... 
      } 
     } 

    } 

これが役立つかどうかを確認してください。

1

ユーザにディレクトリのパスを入力するためのテキストボックスを提供します。

File userDir=new File("userEnteredDir"); 
File[] allfiles=useDir.listFiles(); 

反復ALLFILESは()メソッドgetExtensionを使用して.txtファイルをフィルタリングする

関連する問題