Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
xunicorn
3 / 3 / 0
Регистрация: 22.11.2011
Сообщений: 118
#1

Физическое удаление файлов с SD карты - Android

04.03.2016, 14:56. Просмотров 935. Ответов 8
Метки нет (Все метки)

Всем здрасте.
У меня приложение принимает екшн android.intent.action.SEND и типы image/*. Обычно это фотки с галереи. Работать с физическими файлами я могу (копировать, открывать), но я хочу удалить файл.
Через contentResolver у меня удаляеться только запись с MediaStore.Images.Media.EXTERNAL_CONTENT_URI, а физический файл остаеться. Пробовал удалять через стандартный java.io.File но пишет, что нету разрешения.
Вопрос: как удалить физически файл (фото) ?

если была такая тема - киньте ссылку, а то не нашел
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
korshun84
13 / 68 / 14
Регистрация: 08.07.2014
Сообщений: 359
04.03.2016, 17:08     Физическое удаление файлов с SD карты #2
Цитата Сообщение от xunicorn Посмотреть сообщение
как удалить физически файл (фото) ?
В версиях андроида 4.4+ доступ вашего приложения ограничен: полный доступ есть только в свою директорию (Android/data/your_package_name).
xunicorn
3 / 3 / 0
Регистрация: 22.11.2011
Сообщений: 118
04.03.2016, 17:11  [ТС]     Физическое удаление файлов с SD карты #3
Это я догадываюсь. Но ведь файл менеджеры как-то удаляют файлы с любого места? Тот же самый es Explorer
Паблито
2012 / 1754 / 545
Регистрация: 12.05.2014
Сообщений: 6,208
Завершенные тесты: 1
04.03.2016, 17:17     Физическое удаление файлов с SD карты #4
менеджеры читают список файлов и могут удалять их в публичных папках
нужен путь к файлу, а не InputStream из файла
xunicorn
3 / 3 / 0
Регистрация: 22.11.2011
Сообщений: 118
04.03.2016, 17:22  [ТС]     Физическое удаление файлов с SD карты #5
папка фотографий DCIM на сд карте - это публичная папка? Менеджер может с нее удалять

Добавлено через 2 минуты
Тем более, когда у меня есть путь к файлу - я его удалить не могу, а менеджер - может.
Паблито
2012 / 1754 / 545
Регистрация: 12.05.2014
Сообщений: 6,208
Завершенные тесты: 1
04.03.2016, 17:24     Физическое удаление файлов с SD карты #6
разрешение есть в манифесте?
XML
1
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
если есть то код надо видеть где и что удаляется и какая ошибка
xunicorn
3 / 3 / 0
Регистрация: 22.11.2011
Сообщений: 118
04.03.2016, 17:58  [ТС]     Физическое удаление файлов с SD карты #7
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
Intent intent = getIntent();
Uri dataUri = (Uri) intent.getExtras().get(Intent.EXTRA_STREAM);
if(!dataUri.getScheme().equals("file")) {
    Log.d(TAG, "[handleSendUri] get input stream");
    ContentResolver cr = getContentResolver();
    in = cr.openInputStream(dataUri);
    Log.i(TAG, "incoming URI: " + dataUri.toString());
 
    Log.d(TAG, "[handleSendUri] get path from uri");
    filepath = getFilePathFromURI(getApplicationContext(), dataUri);
} else {
    filepath = dataUri.getPath();
    in = new FileInputStream(filepath);
}
 
//file copy code
 
if(dataUri.getScheme().equals("file")) {
    Log.d(TAG, "[deleteFile] check physically file existence");
 
    java.io.File file = new java.io.File(uri.getPath());
 
    if (file.exists()) {
        if (!file.delete()) { // ERROR IS HERE: COULD NOT DELETE
            Log.e(TAG, "[deleteFile] could not delete the file: " + file.getAbsolutePath());
        } else {
            Log.d(TAG, "[deleteFile] file successfully deleted: " + file.getAbsolutePath());
        }
    } else {
        Log.w(TAG, "[deleteFile] file does not exists: " + file.getAbsolutePath());
    }
}
То есть я делаю файлу Intent.ACTION_SEND c Es Explorer-a, в своем приложении ловлю этот екшн. Потом копирование файла. Но после копирования, файл не удаляеться. (Схема ури, которое приходит - file)

В манифесте стоят 2 пермишина
XML
1
2
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
Добавлено через 6 минут
21 строка:
Java
1
java.io.File file = new java.io.File(dataUri.getPath());
вместо того, что есть
Паблито
2012 / 1754 / 545
Регистрация: 12.05.2014
Сообщений: 6,208
Завершенные тесты: 1
04.03.2016, 18:12     Физическое удаление файлов с SD карты #8
в логаа где лог ошибки?
там полюбому что-то долно писать в logCat
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.03.2016, 18:15     Физическое удаление файлов с SD карты
Еще ссылки по теме:

Android Яндекс Карты
Гуглс Карты + мессенджер Android
Android Не воспроизводится звук с SD карты
Android Карты в android приложении
Android Offline-карты

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
xunicorn
3 / 3 / 0
Регистрация: 22.11.2011
Сообщений: 118
04.03.2016, 18:15  [ТС]     Физическое удаление файлов с SD карты #9
ошибки нету. Просто при удалении файла результат false
Yandex
Объявления
04.03.2016, 18:15     Физическое удаление файлов с SD карты
Ответ Создать тему
Опции темы

Текущее время: 04:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru