質問編集履歴

1

2022/01/19 11:01

投稿

RyuHo
RyuHo

スコア42

test CHANGED
File without changes
test CHANGED
@@ -1,18 +1,27 @@
1
1
  Flutterでassets内のファイルをFile()として扱いたいです。
2
2
  下のようなソースコードを見つけましたが、実行しても、
3
+ ```ここに言語を入力
3
- _**C:/Users/xxx/documents/assets/xxxxxxxxにファイル存在しません**_
4
+ ERROR:flutter/lib/ui/ui_dart_state.cc(209)] Unhandled Exception: FileSystemException: Cannot open file, path = 'C:\Users\xxxxxxx\Documents/assets/images/icon.png' (OS Error: 指定されたパス見つかりません
5
+ , errno = 3)
6
+
7
+ ```
4
8
  というエラーが出てきます。
5
9
  ```Dart
6
- Future<File> getImageFileFromAssets(String path) async {
10
+ Future<File> getFileFromAssets(String path) async {
7
- final byteData = await rootBundle.load('assets/$path');
11
+ var byteData = await rootBundle.load(path);
8
-
12
+ var loc = await localPath;
9
- final file = File('${(await getApplicationDocumentsDirectory()).path}/$path');
13
+ var file = File('$loc/$path');
10
- await file.writeAsBytes(byteData.buffer
14
+ var file2 = await file.writeAsBytes(byteData.buffer
11
15
  .asUint8List(byteData.offsetInBytes, byteData.lengthInBytes));
12
-
13
- return file;
16
+ return file2;
14
17
  }
15
18
  ```
19
+ 呼び出し元はこのようなコードです。
20
+ ```Dart
21
+ var icon =
22
+ await getFileFromAssets("assets/images/icon.png");
23
+ ```
24
+ プロジェクトフォルダー直下にassetsフォルダーを作成し、その中にimagesフォルダー、さらにその中にicon.pngを配置しました。
16
25
 
17
26
  わかる方がいらっしゃれば教えていただけるととてもありがたいです。
18
27
  よろしくお願いします。