私がやりたいのは、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();