Удалить файл на SD-карте Android со строкой

У меня есть эта строка,

Cursor c = db.obtenerDatoEjercicio(selecID);
String stringFoto1 = c.getString(6).toString();

тогда строкаFoto1 равна "file:///mnt/sdcard/Pictures/neoadnEditGyM/GYM_2.2.jpg"

Этот файл существует.

Я хочу удалить этот файл на SD-карте, и я использовал следующий код:

String stringFoto1 = "file:///mnt/sdcard/Pictures/neoadnEditGyM/GYM_2.2.jpg"
File archivo1 = new File(stringFoto1);
archivo1.delete();

Но это не работает, помогите.


person Juan A. Doval    schedule 26.07.2013    source источник


Ответы (2)


Вы можете попробовать использовать это:

 String strFile = "/sdcard/Pictures/neoadnEditGyM/GYM_2.2.jpg"  
 File file = new File(strFile);
 boolean deleted = file.delete();

Кроме того, если вы используете > 1.6 SDK, вы должны дать разрешение

uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"

в AndroidManifest.xml файле

person Amilcar Andrade    schedule 26.07.2013
comment
У меня есть разрешение на использование. проблема в том, что строка strFile - file:///mnt/sdcard/Pictures/neoadnEditGyM/GYM_2.2.jpg - потому что я получаю эту строку из БД. - person Juan A. Doval; 26.07.2013
comment
Затем попробуйте использовать метод substring() или replace(), чтобы преобразовать исходную строку. - person Amilcar Andrade; 26.07.2013
comment
Я думаю, что начальный '/' требуется перед "sdcard..." выше - person tallen; 26.07.2013

Наконец, я использовал другой метод.

Потому что при сохранении фото было с полным путем. Я ставлю только сохранить имя и доступ к "среде".

 String folderSD = Environment.getExternalStorageDirectory().toString()+"/Pictures/neoadnEditGyM/";

        Cursor c = db.obtenerDatoEjercicio(selecID);
        String stringFoto1 = c.getString(6).toString();
        String stringFoto2 = c.getString(7).toString();
        File foto1 = new File(folderSD+stringFoto1);
        if (foto1.exists()){
            foto1.delete(); 
            Toast.makeText(this, stringFoto1+" deleted.", Toast.LENGTH_LONG).show();
        }
        File foto2 = new File (folderSD+stringFoto2);
        if(foto2.exists()){
            foto2.delete();
            Toast.makeText(this, stringFoto2+" deleted.", Toast.LENGTH_LONG).show();
        }
person Juan A. Doval    schedule 26.07.2013