2011-08-09 10 views
15

簡単な質問です。指定したディレクトリ内のディレクトリのリストを取得する方法です。android、どのようにディレクトリのリストを取得する?

例えば、

String path = Environment.getExternalStorageDirectory().toString()+"/myApp/"; 

は今、私は「パス」ディレクトリ内にあるディレクトリのリストを取得する必要があると思います。

ありがとうございます!

答えて

38

サムシング(nullのチェックを追加し、例外など。)

File f = new File(path); 
File[] files = f.listFiles(); 
for (File inFile : files) { 
    if (inFile.isDirectory()) { 
     // is directory 
    } 
} 
+1

ありがとう、働いて!:) – Roger

5
File[] files = new File(path).listFiles(); 
for (File aFile : files) 
    if (aFile.isDirectory()) { 
      // so on 

AndroidのファイルAPIリファレンスそのようhere

+0

ありがとう、働いて!:) – Roger

1
LinearLayout root = new LinearLayout(this); 
    File file = new File(Environment.getExternalStorageDirectory().getPath()); 
    if(file.isDirectory() == false) 
    { 
     Toast.makeText(this, "ERROR", Toast.LENGTH_SHORT).show(); 
     return; 
    } 
    File[] files = file.listFiles(); 
    int i = 1; 
    for(File f : files) 
    { 
     if(f.isFile() || f.isDirectory()) 
     { 
      try 
      { 
       LinearLayout layout = new LinearLayout(this); 
       layout.setId(i); 
        Button text = new Button(this); 
        text.setText(f.getName()); 
        text.setMinWidth(400); 
       layout.addView(text); 
       root.addView(layout); 
       i++; 
      } 
      catch(Exception e){} 
     } 
    } 
    LinearLayout layout = new LinearLayout(this); 
    HorizontalScrollView scroll = new HorizontalScrollView(this); 
    scroll.addView(root); 
    layout.addView(scroll); 
    setContentView(layout); 

(申し訳ありませんが、私はテストができませんでした... ) ( "android.app。"、 "android.os。"、 "android.widget。"、android.view。 "、" android.view.View。 "、" java.io.私はこれが既に回答されていますが、私は、それは別の、間違いなくシンプルなオプションを欠けて気づいた。だから私は今後の参考のためにそれを含めています。

File myDirectory = new File("path to some directory"); 
File[] directories = myDirectory.listFiles(new FileFilter() { 
    @Override 
    public boolean accept(File pathname) { 
     return pathname.isDirectory(); 
    } 
}); 

このコードは、あなたがforを使用する必要がなくなります知っ

11

ループ。

+0

これは、Javaの8の場合に特に役に立ちます: 'File directories [] = new File(some/path")listFiles File :: isDirectory); ' – iamai

関連する問題