Почему этот код работать: Sудаление файлов из SDCard
public void delete(String name) {
File file = new File(
activity.getExternalFilesDir(Environment.DIRECTORY_PICTURES),
name);
if (file.exists()) {
String[] files = file.list();
for (int i = 0; i < files.length; i++) {
boolean deleted;
if (new File(files[i]).isDirectory())
delete(new File(files[i]).getName());
else {
deleted = new File(files[i]).delete();
Log.d(new File(files[i]).getName(),
Boolean.toString(deleted));
}
}
}
}
И я использую разрешение
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
И когда я проверил значение удален я нашел, что это неверно: S
Попробуйте закрыть файл ручками сразу после удаления. Также я думаю, что вам нужно реорганизовать свой код, чтобы четко показать каталоги и файлы, что сбивает с толку меня по крайней мере – Slartibartfast
. Что вы имеете в виду с вашим кодом, чтобы четко показать каталоги и файлы? –
Является ли это 'File file = new File (activity.getExternalFilesDir (Environment.DIRECTORY_PICTURES), имя);' каталог? Кажется, что это каталог, из которого вы используете .list, чтобы перечислять все файлы, а затем удалять их один за другим. В основном рефакторинг, чтобы продемонстрировать этот факт, очевидно, что все просто говорит файл или файлы. – Slartibartfast