Flutter: разрешение ошибки при удалении файла со съемного носителя - PullRequest
0 голосов
/ 18 июня 2020

У меня есть файл по этому адресу:

path = '/storage/084C-1C0F/Yalin - Deva Bize Sevisler [128].mp3'

Итак, после вставки этого разрешения в android манифест:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

Я хочу удалить этот файл:

 checkPermission().then((value) {
  final dir = Directory(model.path);
  dir.deleteSync(recursive: true);
  BlocProvider.of<AllMusicBloc>(context)
      .add(DeleteDeviceMusic(model.id));
});

  Future<bool> checkPermission() async {
    var status = await Permission.storage.status;
    if (!status.isGranted) {
      await Permission.storage.request();
    }
    return true;
  }

, но я получил эту ошибку:

E/flutter (16660): [ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: FileSystemException: Deletion failed, path = '/storage/084C-1C0F/Yalin - Deva Bize Sevisler [128].mp3' (OS Error: Permission denied, errno = 13)

Ответы [ 2 ]

0 голосов
/ 18 июня 2020

Я думаю, что Flutter не делает этого самостоятельно, для этого я использовал собственный код

для android:

  private void removeFile(String path){

    File sd = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);
    File image = new File(sd+ File.separator, path);

    if (image.exists()) {
      if (image.delete()) {
        System.out.println("file Deleted :" + image.getPath());
      } else {
        System.out.println("file not Deleted :" + image.getPath());
      }
    }

  }
0 голосов
/ 18 июня 2020

На съемную карту памяти micro sd невозможно записать по этому пути

...