Я пробовал это:

File f =Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);

        System.out.println(f.list());
        System.out.println(f.listFiles().toString());

Но он показывает ноль. Я дал разрешения на чтение и запись в манифесте.

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
1
user6731698 3 Янв 2018 в 15:11

2 ответа

Лучший ответ

READ_EXTERNAL_STORAGE - это опасное разрешение. Вам нужно спросить у него разрешение на выполнение.

Начиная с Android 6.0 (уровень API 23), пользователи предоставляют разрешения приложениям во время работы приложения, а не при его установке.

Вам необходимо запросить разрешение времени выполнения

А также попробуйте это

Попробуй это

private void getfiles() {
    String[] filenames = new String[0];
    ArrayList<String> fileArrayList = new ArrayList<>();
    File path = new File(Environment.getExternalStorageDirectory() + "/folder_name");
    if (path.exists()) {
        filenames = path.list();
    }
    for (int i = 0; i < filenames.length; i++) {
        fileArrayList.add(path.getPath() + "/" + filenames[i]);
        Log.e("fileArrayList", fileArrayList.get(i));

    }
}
1
Goku 3 Янв 2018 в 12:27
File f = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);

List<String> files = getList(f);


private List<String> getList(File parentDir, String pathToParentDir) {
ArrayList<String> inFiles = new ArrayList<String>();
String[] fileNames = parentDir.list();

for (String fileName : fileNames) {
    if (fileName.toLowerCase().endsWith(".txt") || 
fileName.toLowerCase().endsWith(".rtf") || 
fileName.toLowerCase().endsWith(".doc") || 
fileName.toLowerCase().endsWith(".txd")) {
        inFiles.add(pathToParentDir + fileName);
    } else {
        File file = new File(parentDir.getPath() + "/" + fileName);
        if (file.isDirectory()) {
            inFiles.addAll(getList(file, pathToParentDir + fileName + "/"));
        }
    }
}

return inFiles;
}
1
Rajnikant Singh 3 Янв 2018 в 12:35