Удалить файл из хранилища с помощью RNFetchBlob

#android #react-native #filesystems #rn-fetch-blob

#Android #react-native #файловые системы #rn-fetch-blob

Вопрос:

У меня есть следующий код для отсоединения / удаления файла из папки загрузок, которую я создал также через приложение, используя тот же путь.

Обратите внимание, что я использую пакет RNFetchBlob.

 ---
const fs = RNFetchBlob.fs
const base64 = RNFetchBlob.base64
const dirs = RNFetchBlob.fs.dirs

RNFetchBlob.fs
      .unlink(dirs.DownloadDir   '/passpoint.config.xml')
      .then(() => {
        alert("File deleted");
      })
      .catch(err => {
        alert(err);
      });
---
  

Я продолжаю получать следующую ошибку;

 [Error: Failed to delete '/storage/emulated/0/Download/passpoint.config.xml']
  

Я подумал, что это может быть путь, но это тот же путь, который я использовал для создания файла, и я могу просмотреть файл через проводник на Android.

Решение

 fs.unlink(dirs.DownloadDir   '/passpoint.config.xml');
  

Ответ №1:

Используйте MANAGE_EXTERNAL_STORAGE разрешение как быстрое решение (редактировать AndroidManifiest.xml )

https://developer.android.com/training/data-storage/manage-all-files

Или используйте более продвинутые методы:

https://developer.android.com/training/data-storage/shared/media

https://developer.android.com/training/data-storage/shared/documents-files

Ответ №2:

Просто добавьте android:requestLegacyExternalStorage="true" в AndroidManifiest.xml файл

 <application
android:name=".MainApplication"
android:label="@string/app_name"
android:icon="@mipmap/ic_launcher"
android:roundIcon="@mipmap/ic_launcher_round"
android:allowBackup="false"
android:theme="@style/AppTheme"
android:requestLegacyExternalStorage="true">