ファイルをロードする前にファイルが存在するかどうかを確認する 質問する

ファイルをロードする前にファイルが存在するかどうかを確認する 質問する

私がやりたいのは、Material Widget に画像をロードして ListTile で使用することですが、このアセットが存在しない可能性があります。

class MyImage extends StatelessWidget {
  final imagePath;

  MyIcon(String iconName) {
    try { // check if imagePath exists. Here is the problem
      imagePath = check('assets/$iconName.png/');
    } catch (e, s) { // if not
      imagePath = 'assets/$iconName.png/';
    }
  }

 @override
  Widget build(BuildContext context) {
    return Material(...here I will load the imagePath...);
 }
}

つまり、ステートレス ウィジェットを使用しているので、画像が存在するかどうかを事前に知る必要があります。そうでない場合は null が読み込まれることになりますか?

ベストアンサー1

かどうかを確認するためにファイルアプリの内部ローカルストレージに存在する場合:

import 'dart:io' as io;
var syncPath = await path;

// for a file
await io.File(syncPath).exists();
io.File(syncPath).existsSync();

// for a directory
await io.Directory(syncPath).exists();
io.Directory(syncPath).existsSync();

おすすめ記事