Как получить список всех каталогов на вашей SD-карте? - PullRequest
1 голос
/ 23 декабря 2011

Как получить список всех каталогов на вашей SD-карте?

Ответы [ 3 ]

2 голосов
/ 23 декабря 2011

Попробуйте использовать следующий код, чтобы получить список, если каталоги

public static ArrayList<String> getAllDirectoriesFromSDCard(Activity activity) {
        ArrayList<String> absolutePathOfImageList = new ArrayList<String>();
        File file[] = Environment.getExternalStorageDirectory().listFiles();  


        for (File f : file)
        {
            if (f.isDirectory()) {
                absolutePathOfImageList.add(f.getAbsolutePath());
                }
        }

        // Log.i(TAG,"........Detected images for Grid....."
        // + absolutePathOfImageList);
        return absolutePathOfImageList;
    }
1 голос
/ 23 декабря 2011

Под всеми каталогами я думаю, что вы имеете в виду даже дочерние каталоги в SDCard, ну, если да, то вот что вам нужно сделать

1) Инициализировать ArrayList

private ArrayList<String> allDirectories = new ArrayList<String>();

2) Скопируйте и вставьте эту функцию:

    public void listAllDirectories(String path) {

    File tempfile = new File(path);
    File[] files = tempfile.listFiles();

    if (files != null) {
        for (File checkFile : files) {
            if (checkFile.isDirectory()) {
                allDirectories.add(checkFile.getName());
                listAllDirectories(checkFile.getAbsolutePath());
            }
        }
    }
}

3) Звоните откуда угодно

listAllDirectories(Environment.getExternalStorageDirectory().toString());
    for (int i = 0; i < allDirectories.size(); i++) {
        System.out.println(allDirectories.get(i));
    }
0 голосов
/ 23 декабря 2011

Пожалуйста, попробуйте следующий код.

Код:

System.out.println(" File List Start" );
File file[] = Environment.getExternalStorageDirectory().listFiles();  
for (int i=1;i<=file.length;i++){
System.out.println(" No. "+i+" : "+file[i-1].getAbsolutePath());
}
System.out.println(" File List End" );
...