2012-01-30 2 views
0

ファイル名の配列に基づいてメソッドを実行することはできますか?たとえば、特定のディレクトリ内のすべてのファイルの配列を作成したい場合 - thisについて議論しますが、配列内のすべてのファイル/ファイル名にメソッドを適用したいとします。Java - ファイル名の配列を使用して各ファイルに対してメソッドを実行

これは、私が機能を実行したい300(すぐに500)のイメージファイルを持っているためであり、同じ機能の300-500の別々のインスタンスを書く必要があるのは明らかにばかげている多くの明白な理由のためにmain()の方法では(また、画像の数が将来的に増加する可能性があり、これは間違いなくこのアプローチをさらに馬鹿馬鹿しくするだろう)。

これは、ファイル名を格納するための配列を使用して、次に各イメージの場所0-299のファイル名を使用して、そのイメージファイルで機能を実行できるかどうかを知りたいと思います。このような

何か:私はすでに機能を実行するために、関連するコードを書かれている

Create array of FileNames; 

For 
    all filenames 0-299 in array; 
    perform method(filename(0-299)); 
End for 

は、私ははるかに効率的な方法で私の目標を達成するための方法があるかどうかを知る必要があります。

これを置く簡単な方法は、特定のディレクトリ内のすべてのファイル(サブディレクトリではない)に対してメソッドを実行する方法を尋ねることです。

多くのありがとうございます。 Java Collectionsを使用して

+0

これまでに書いた関連コードを参照してください。私はそれが本当にあなたが言っていることを理解する唯一の方法だと思います。 – Abbas

+0

http://docs.oracle.com/javase/tutorial/2d/images/loadimage.html?あなたが投稿したリンクからvashsの回答で。 – L7ColWinters

+1

私は実際にこれが宿題ではなく、実際に自分の利益のために取り組んでいる私的な作品であることを確認することができます。その前提をしたあなたのために、私はあなたが間違っていることを通知することができます。問題のコードに関しては、ここでもそこにもないと考えることができます。私の質問は、コードが使用されるかどうかにかかわらず、何かを実装する方法を調べることです。 'System.out.print(" Text ");'ステートメント。 – MusTheDataGuy

答えて

4
public void processFiles() { 
    File dir = new File("/tmp/"); 
     if (dir.isDirectory()) { 
      final File[] files = dir.listFiles(); 
      for (File file : files) { 
      myMethod(file); 
      } 
     } 
} 

private void myMethod(File file) { 
    // do what you need here with the file 
} 
+1

-1はどんな考えに基づいていますか? –

+0

明らかにそうではありません! :-) – MusTheDataGuy

+0

多分誰かがオープニングブレースを見逃していた;-) – Artur

1

まず第一には、Javaでのコレクションと連携するための望ましい方法です。

Javaのコレクションは、反復処理するのは簡単です - あなたはそれのために強化されFor-Each Loopを使用することができますため、それぞれあなたはちょうどあなたがそれはあなたのファイルでやりたいものは何でもやってメソッドを呼び出す必要がありますループ強化このインサイドfor(File f : collectionOfFiles) { ... }

関連する問題