Android, как получить список каталогов?

Просто быстрый вопрос, как получить список каталогов внутри указанного каталога.

например,

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

теперь мне нужно будет получить список каталогов, находящихся внутри каталога "путь".

Спасибо!

Ответы

Ответ 1

Что-то вроде этого (добавьте нулевую проверку, исключения и т.д.)

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

Ответ 2

Я знаю, что это уже было дан ответ, но я заметил, что у него отсутствует другой, возможно более простой вариант. Поэтому я включаю его для справок в будущем.

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

Этот код избавляет вас от необходимости использовать цикл for.

Ответ 3

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

Ссылка на API Android File здесь

Ответ 4

    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."