2012-03-13 12 views
-1

私は質問100%の権利を求めたかどうかわからないのですが、ここでそれが行く: 私はこのコードを持って:取得ファイル名が

File root = Environment.getExternalStorageDirectory(); 
File saveFolder= new File(Root, "Save"); 

     String[] files=saveFolder.list(
      new FilenameFilter() { 
       public boolean accept(File dir, String name) { 
       //define here you filter condition for every single file 
        return name.startsWith("1_"); 

       } 
      }); 

     if(files.length>0) { 
      System.out.println("FOUND!"); 
      System.out.println("Files length = "+files.length); 
     } else { 
      System.out.println("NOT FOUND!"); 
     } 

私は"1_"で始まる2つのファイルを得たが、println私は2つのファイルがあることを示しています。 しかし、これらの2つのファイルのファイル名をブール値の後ろに印刷したり表示したりするにはどうすればよいですか?

ので(他のSystem.out.println間)のようなもの:

System.out.println("File names = "+files.names);

+1

あなたは大文字を使用して、変数名を開始中止してくださいすることができますか? – njzk2

+0

私はあなたのためにそれをしました - 次回は**あなたがあなたが投稿したコードの大文字で始まる変数名を使用しないでください**。 (もしあなたがその人にあなたのコードを見せたいならば) –

+0

次はもっと注意を払うつもりです。 すべての回答ありがとう – Bigflow

答えて

5

ループ配列オーバー:

String[] files=SaveFolder.list(...); 
for (String name : files) { 
    System.out.println("File name: " + name); 
} 

注変数の命名規則は、下部ケースでそれらを開始することであること。

+0

ありがとう、決してあなたのようなforループを行うことができますか?これはJavaだけです(C++で見たことがない/使用したことはありません) – Bigflow

+0

これはfor-eachループです:http://docs.oracle.com/javase/1.5.0/docs/guide/language/foreach.html通常のループでもやってください。 – MByD

0

あなたはこれで

public boolean accept(File dir, String Name) { 
      //define here you filter condition for every single file 
       return Name.startsWith("1_"); 

      } 

を交換

file.getName(); // for the name of the file 
file.getAbsolutePath(); for the full path of the file 
1

使用することができます。

public boolean accept(File dir, String Name) { 
      //define here you filter condition for every single file 
       boolean b = Name.startsWith("1_"); 
       if (b) 
        System.out.println(Name); 
       return b; 

      } 
1

使用は、Arrays.asList()をすばやくプリミティブ配列を印刷したい場合は

System.out.println(Arrays.asList(files)); 
+0

アダム、ありがとうございました。 – pudaykiran

1

かのブロックにいくつかのコードを追加します。

if(files.length>0) { 
    System.out.println("FOUND!"); 
    System.out.println("Files length = "+files.length); 
    // next lines print the filenames 
    for (String fileName:files) 
     System.out.println(fileName); 
} 
0

これは私がload関数でロードするために、ファイル名が必要な場合は、私が個人的に使用するものです。

public void getFiles(String path){ 
     //Store the filesnames to ArryList<String> 
     File dir = new File(path); 
      ArrayList<String> savefiles = new ArrayList<String>(); 
     for(File file : dir.listFiles()){ 
      savefiles.add(file.getName()); 
     } 
     //Check if the filenames or so to say read them 
     for (int i = 0; i < savefiles.size(); i++){ 
      String s = savefiles.get(i); 
      System.out.println("File "+i+" : "+s); 
     } 
     System.out.println("\n"); 
    } 

私はこれが役に立てば幸いC:

関連する問題