Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

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

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

если была такая тема - киньте ссылку, а то не нашел
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.03.2016, 14:56
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Физическое удаление файлов с SD карты (Программирование Android):

Продажа приложений как физическое лицо - Программирование Android
В инете ДХ и больше инфы... но везде по разному.. Кто как продает? Как регаться как физ.лицо ? там вроде нельзя как физ лицо в...

Физическое рабочее место профи-разработчика - Программирование Android
мечтаю стать профи по разработе на андроиде и появились вопросы к разработчикам (с несколькими годами работы) к месту работы: Как его...

Физическое удаление записи - MySQL
Как мне физически удалить запись из таблицы. Когда я удаляю файл командой DELETE, то запись удаляется логически. При выборке SELECT ее...

Физическое удаление листов из книги - VBA
В своем приложении мне периодически нужно удалить определенный набор листов из книги, а затем залить этот же набор из множества других...

ФИЗИЧЕСКОЕ удаление двух последних элементов статического массива - Delphi
Подскажите как удалить два последних элемента массива?? Нужно именно удалить. Например был массив размером 9 элементов, после удаления...

.NET 3.x Физическое перемещение файлов на жестком диске - C#
обращаюсь к вам, так как инфы не где не могу найти. Возможно кто-то уже имел с этим дело(дефрагментатор писал или т.п), подскажет чтобы...

8
korshun84
28 / 83 / 19
Регистрация: 08.07.2014
Сообщений: 455
04.03.2016, 17:08 #2
Цитата Сообщение от xunicorn Посмотреть сообщение
как удалить физически файл (фото) ?
В версиях андроида 4.4+ доступ вашего приложения ограничен: полный доступ есть только в свою директорию (Android/data/your_package_name).
0
xunicorn
3 / 3 / 0
Регистрация: 22.11.2011
Сообщений: 121
04.03.2016, 17:11  [ТС] #3
Это я догадываюсь. Но ведь файл менеджеры как-то удаляют файлы с любого места? Тот же самый es Explorer
0
Pablito
2545 / 2027 / 631
Регистрация: 12.05.2014
Сообщений: 7,141
Завершенные тесты: 1
04.03.2016, 17:17 #4
менеджеры читают список файлов и могут удалять их в публичных папках
нужен путь к файлу, а не InputStream из файла
0
xunicorn
3 / 3 / 0
Регистрация: 22.11.2011
Сообщений: 121
04.03.2016, 17:22  [ТС] #5
папка фотографий DCIM на сд карте - это публичная папка? Менеджер может с нее удалять

Добавлено через 2 минуты
Тем более, когда у меня есть путь к файлу - я его удалить не могу, а менеджер - может.
0
Pablito
2545 / 2027 / 631
Регистрация: 12.05.2014
Сообщений: 7,141
Завершенные тесты: 1
04.03.2016, 17:24 #6
разрешение есть в манифесте?
XML
1
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
если есть то код надо видеть где и что удаляется и какая ошибка
0
xunicorn
3 / 3 / 0
Регистрация: 22.11.2011
Сообщений: 121
04.03.2016, 17:58  [ТС] #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());
вместо того, что есть
0
Pablito
2545 / 2027 / 631
Регистрация: 12.05.2014
Сообщений: 7,141
Завершенные тесты: 1
04.03.2016, 18:12 #8
в логаа где лог ошибки?
там полюбому что-то долно писать в logCat
0
xunicorn
3 / 3 / 0
Регистрация: 22.11.2011
Сообщений: 121
04.03.2016, 18:15  [ТС] #9
ошибки нету. Просто при удалении файла результат false
0
04.03.2016, 18:15
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.03.2016, 18:15
Привет! Вот еще темы с ответами:

Написать программу, которая обеспечивает:начальное формирование каталога файлов;вывод каталога файлов;удаление файлов... - C++
Уважаемые хакеры!Прошу вашей помощи!Я в СИ не особо шарю.((( А на днях уже сдавать.Очень рассчитываю на любую вашу помощь. Вот задача. ...

Как сделать закачку и удаление файлов, создание и удаление каталогов? - PHP
Как сделать закачку и удаление файлов, создание и удаление каталогов?

Как закрыть доступ на удаление файлов и автоматизировать их удаление через определенный промежуток времени? - Windows XP
Добрый день, жители форума. Есть следующая проблема: Имеется компьютер с виндовс хр, на один из дисков пишется видео с камер видео...

Скрипты Linux, удаление файлов из каталога, подсчет файлов в каталоге - Bash
С linux столкнулась не по своей воле, но приходиться изучать, я совсершенно еще зеленая в Линуксе, если есть проффесионалы, могли бы...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.