Как исправить «FileSystemException: Не удается открыть файл» во флаттере при чтении и записи файлов? - PullRequest
0 голосов
/ 19 марта 2020

Я довольно новичок в дартс / флаттер, поэтому дайте мне знать, если есть что-то, что я могу уточнить. Я пытаюсь загрузить файл, но когда я пытаюсь получить к нему доступ, я получаю сообщение об ошибке «FileSystemException: не удается открыть файл, путь = './data.csv' (ошибка ОС: файловая система только для чтения, errno = 30 ) «Что я делаю не так, и как я могу это исправить?

 downloadTextFile() {
    HttpClient client = new HttpClient();
    client.getUrl(Uri.parse(*I put the link I used here, but it's sort of long*))
        .then((HttpClientRequest request) {
      return request.close();
    })
        .then((HttpClientResponse response) {
      response.pipe(new File('./data.csv').openWrite());
    });
    readFileByLines();
  }

  void readFileByLines() {
    File file = new File('./data.csv');
    List<String> lines = file.readAsLinesSync();
    lines.forEach((l) => print(l));
  }

1 Ответ

0 голосов
/ 19 марта 2020

Вы можете использовать пакет https://pub.dev/packages/path_provider
и записать свой файл в tempPath или appDocPath

Directory tempDir = await getTemporaryDirectory();
String tempPath = tempDir.path;

Directory appDocDir = await getApplicationDocumentsDirectory();
String appDocPath = appDocDir.path;

Для Android, В AndroidManifest.xml, Вы можете добавить разрешение

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...