4

Я использовалКак удалить файл из внешнего запоминающего устройства в Android 5

File f=new File(MyPath); 
f.delete(); 

и я использовал разрешение WRITE_EXTERNAL_STORAGE и READ_EXTERNAL_STORAGE, но это не работает в Android 5.

Logcat сообщение:

java.io.FileNotFoundException: storage/external_SD/mm.txt: open failed: EACCES (Permission denied) 

Файл манифеста:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.example.mahestan_programming.myapplication"> 

    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 
    <application 
     android:allowBackup="true" 
     android:icon="@mipmap/ic_launcher" 
     android:label="@string/app_name" 
     android:supportsRtl="true" 
     android:theme="@style/AppTheme"> 
     <activity android:name=".MainActivity"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
    </application> 

</manifest> 

мы не можем удалить и записывать файлы с Micro SD-CARD, начиная с версии 4.4. Он читается только сейчас.

+0

Можете ли вы разместить свой журнал logcat? –

+0

@ArtemMostyaev logcat не посылает мне ничего журнала. –

+0

Обратите внимание на все сообщения logcat для вашего приложения. Там могут быть оранжевые предупреждения с дополнительной информацией об ошибке. –

ответ

1
storage/external_SD/mm.txt 

Это неверный путь. Вы должны использовать

/storage/external_SD/mm.txt 

Это не внешнее хранилище для начала. Это съемное хранилище.

С Android 4.4 на приложениях больше не удается записать на микро SD-карту.

Google решил как таковой.

Мы должны жить с ним. Но сложно.

+0

Я редактирую этот путь, и моя проблема не решена. –

+0

Что это значит? Я сказал вам, что вы не можете удалять файлы с карты micro SD с версии 4.4. Так что же не решено? – greenapps

+0

Я имею в виду/хранение/... это не решено. Если файлы находятся в «Частном режиме» в приложении, они не могут их удалить? Чтобы удалить файл, что делать? –

0

Попробуйте это:

private ArrayList<String> _filePaths = new ArrayList<String>(); 
    final String imgPath=_filePaths.get(_postion); 
     final Snackbar snackbar = Snackbar 
       .make(view, "Delete Image?", Snackbar.LENGTH_LONG) 
       .setAction("DELETE", new View.OnClickListener() { 
        @Override 
        public void onClick(View view) { 
         File file = new File(imgPath); 
         file.delete(); 

         Snackbar snackbar1 = Snackbar.make(view, "Image Deleted!", Snackbar.LENGTH_SHORT); 
         notifyDataSetChanged(); 
         View sbView = snackbar1.getView(); 
         TextView textView = (TextView) sbView.findViewById(android.support.design.R.id.snackbar_text); 
         textView.setTextColor(Color.YELLOW); 
         snackbar1.show(); 

        } 
       }); 
     snackbar.setActionTextColor(Color.RED); 
     View sbView = snackbar.getView(); 
     TextView textView = (TextView) sbView.findViewById(android.support.design.R.id.snackbar_text); 
     textView.setTextColor(Color.YELLOW); 
     snackbar.show(); 

Если это не работает средство выкладывает LogCat и коды ваш используют

2

Пожалуйста, проверьте путь к файлу тщательно, путь что-то любит ниже:

String filePath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/Audio/audio_20160622_081844.3gp"; 
File file = new File(filePath); 
if (file.exists()) { 
    file.delete(); 
} 
+0

Все в порядке, потому что работало на Android 4. –

+0

Android 5 может переключать правила именования карт, поэтому путь может быть другим/ –

0

Вы получили java.io.FileNotFoundException, что означает, что путь к файлу storage/external_SD/mm.txt неправильно.

На моем устройстве у меня разные местоположения, и один из них - то, что вы хотите, я думаю.

  1. /external_sd/ - без storage приставки
  2. /storage/sdcard0 - виртуальная карта SD, предоставляется Sony
  3. /storage/sdcard1 - реальная физическая карта SD, вставленная в устройство

Также вы можете вручную просмотреть файл система в Android Studio. Нажмите «Инструменты» -> «Android» -> «Android Device Monitor». Выберите свое устройство на левой панели и вкладку «Файл-проводник» справа, и вы сможете просматривать все файлы на своем устройстве.

+0

Мой путь ОК. logcat отправить сообщение «Permission Denied» в android 5. –