Как я могу перезаписать изображение ресурсов во Flutter, имея исходное изображение? - PullRequest
1 голос
/ 21 июня 2020

Я новичок в Dart и Flutter, и у меня возникли проблемы с перезаписью существующего изображения ресурсов из исходного изображения.

Моя попытка:

try {
 File localFile = File('assets/images/myImage.png');
 localFile.writeAsBytesSync(originFile.readAsBytesSync());
catch (e) {
 log(e.toString());
}

Я получаю :

[log] FileSystemException: Cannot open file, path = 'assets/images/myImage.png' (OS Error: No such file or directory, errno = 2)

Я определил папку с ресурсами в pubspe c .yaml :

 assets:
    - assets/images/

Хорошо, я где-то читал, что актив к файлу можно получить доступ следующим образом:

import 'package:flutter/services.dart' show rootBundle;
final byteData = await rootBundle.load('assets/images/myImage.png');

Но я не знаю, как преобразовать byteData в объект File , представляющий фактический файл.

Думаю, мне здесь не хватает чего-то очень c. Или, может быть, есть правильный способ сделать это, не имеющий ничего общего с этим подходом?

Пожалуйста, помогите.

Заранее спасибо!

1 Ответ

1 голос
/ 21 июня 2020

Если вы хотите записать файл на пользовательском устройстве, вы должны посмотреть здесь: https://flutter.dev/docs/cookbook/persistence/reading-writing-files

Общие настройки - это место на телефоне, куда ваше приложение может писать, поэтому оно именно то, что вы хотите!

Активы являются частью вашего приложения и не предназначены для изменения в приложении.

Во время сборки Flutter помещает активы в специальный архив, называемый набор ресурсов, из которого приложения читают во время выполнения. Согласно сайту flutter

Надеюсь, это поможет!

...