Студия Android не может читать файлы из папки сAndroid

Форум для тех, кто программирует под Android
Anonymous
Студия Android не может читать файлы из папки с

Сообщение Anonymous »

Я пытаюсь скрыть некоторые файлы, находящиеся внутри папки, в галерее устройства. Для этого я создал папку с точкой (.) в начале ее имени, вот так:

Код: Выделить всё

public File getPathThumbnail() {
File dir;

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
dir = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS) + "/AquaInfo/.FileImages/Thumbnail");
} else {
dir = new File(Environment.getExternalStorageDirectory() + "/AquaInfo/.FileImages/Thumbnail");
}

if (!dir.exists()) {
boolean success = dir.mkdirs();
if (!success) {
dir = null;
}
}
return dir;
}
Проблема в том, что когда я пытаюсь получить список файлов из этой конкретной папки, список всегда пуст. Если я удалю точку и обновлю свой код, чтобы использовать новое имя папки (без точки), я смогу получить список всех файлов внутри этой папки.
В каталоге есть файлы. , и у меня активированы все необходимые разрешения.
Вот как я пытаюсь прочитать файл из этого каталога:

Код: Выделить всё

File directory = getPathThumbnail();

new Thread(() -> {
while (counter.get() < fichas.length - 3) {
try {
String desiredFileName;
if (fichas[counter.get() + 2].equals(getTipo(fichas[counter.get() + 2]))) {
desiredFileName = (com.aquarismo.removeSpecialCharacteres.funcRemoveSpecialCharacteres(fichas[counter.get() + 2].replace("\"", "").replace("/", "")) + "--" + fichas[counter.get() + 1] + "--").toLowerCase();
} else {
desiredFileName = (com.aquarismo.removeSpecialCharacteres.funcRemoveSpecialCharacteres(fichas[counter.get()].replace("\"", "").replace("/", "")) + "--" + fichas[counter.get() + 1] + "--").toLowerCase();
}

String finalDesiredFileName = desiredFileName;
File[] matchingFiles = directory.listFiles((dir, name) -> name.startsWith(finalDesiredFileName));

assert matchingFiles != null;
if (matchingFiles.length > 0) {
Arrays.sort(matchingFiles, Comparator.comparing(File::getName));

Arrays.sort(matchingFiles, new DadosFichaTecnica.FileNameComparator());
baseDados.setNomeImagemBaseDados(fichas[counter.get() + 1], matchingFiles[matchingFiles.length - 1].getName());
}

runOnUiThread(() -> {
counter.addAndGet(3);
progresso.setProgress(counter.get() / 3);
});
try {
Thread.sleep(2);
} catch (Exception ignored) {
}
} catch (Exception error) {
runOnUiThread(() -> {
counter.addAndGet(3);
progresso.setProgress(counter.get() / 3);
});
}

if (counter.get() >= fichas.length - 3) {
restartAplicacao("inicio");
}
}
}).start();
Я также пытался добавить в папку файл .nomedia вместо точки (.) в его имени, но результат тот же. Поскольку файл находится в папке, я не могу прочитать ни один из файлов внутри нее. Без файла я могу получить к ним доступ без каких-либо проблем.
Как мне решить эту проблему? Я хочу скрыть файлы внутри папки из галереи, но при этом иметь к ним доступ из приложения для Android.
Мое тестовое устройство — Android 14.
Спасибо

Подробнее здесь: https://stackoverflow.com/questions/786 ... older-with

Вернуться в «Android»