반응형
질문
내가 하고 싶은 것은 Material 위젯에 이미지를 로드하여 ListTile에서 사용하는 것이지만, 이 자산이 존재하지 않을 수도 있습니다.
class MyImage extends StatelessWidget {
final imagePath;
MyIcon(String iconName) {
try { // imagePath가 존재하는지 확인합니다. 여기가 문제입니다.
imagePath = check('assets/$iconName.png/');
} catch (e, s) { // 그렇지 않으면
imagePath = 'assets/$iconName.png/';
}
}
@override
Widget build(BuildContext context) {
return Material(...이곳에 imagePath를 로드할 것입니다...);
}
}
그래서 Stateless 위젯을 사용하기 때문에 이미지가 존재하는지 사전에 알아야하고, 그렇지 않으면 null을 로드해야 합니다.
답변
앱의 내부 로컬 저장소에 파일이 존재하는지 여부를 확인하려면 다음을 사용하십시오:
import 'dart:io' as io;
var syncPath = await path;
// 파일인 경우
await io.File(syncPath).exists();
io.File(syncPath).existsSync();
// 디렉토리인 경우
await io.Directory(syncPath).exists();
io.Directory(syncPath).existsSync();
반응형
댓글