Не могу удалить файл с устройства
Не удаляется файл, хотя файл существует и в другом активити даже воспроизводится по точно такой же ссылке. Как правильно удалить файл?
String deletedFilePath = "file://" + fileList.get(position).getPath();
File deletedFile = new File(deletedFilePath);
if (deletedFile.exists()) {
deletedFile.delete();
Toast.makeText(this, "Файл успешно удален!", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(this, "Не удалось удалить!", Toast.LENGTH_SHORT).show();
}
Ответы (1 шт):
Автор решения: Kolhoznik
→ Ссылка
Сделал в итоге так. Все работает. Правда есть косяк один, который не могу исправить. Если пользователь переименовал файл, то при попытке удалить дает ошибку.
String deletedFilePath = list.get(position).getPath();
File deletedFile = new File(deletedFilePath);
String[] projection = {MediaStore.Audio.Media._ID};
String selection = MediaStore.Audio.Media.DATA + " = ?";
String[] selectionArgs = new String[] { deletedFile.getAbsolutePath() };
Uri queryUri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
ContentResolver contentResolver = getContentResolver();
Cursor c = contentResolver.query(queryUri, projection, selection, selectionArgs, null);
if (c != null) {
if (c.moveToFirst()) {
long id = c.getLong(c.getColumnIndexOrThrow(MediaStore.Audio.Media._ID));
Uri deleteUri = ContentUris.withAppendedId(queryUri, id);
contentResolver.delete(deleteUri, null, null);
} else {
//
}
c.close();
}