提问人:bnnrs 提问时间:10/27/2022 更新时间:10/27/2022 访问量:222
无法在 ApplicationDocumentsDirectory 中列出图像文件,即使我可以加载/显示它们
Unable to list image files in the ApplicationDocumentsDirectory even though I can load/display them
问:
我正在尝试使用和 from 获取应用程序文档目录中的文件列表。虽然我可以从这个目录加载图像文件并使用 flutter 的功能查看它们,但我在目录列表中看不到我的应用程序生成的任何图像/jpg 文件。我还尝试使用相同的结果加载文件。path_provider
getApplicationDocumentsDirectory()
Directory(appFolder).listSync()
dart:io
Image.file
File(imagePath)
我不明白为什么在运行时可以成功查找、加载和显示图像文件。对于额外的上下文 - 这些文件是使用 flutter 包生成的。到目前为止,我在 Android 上看到了这个(尚未在 iOS 上测试)。Image.File(imagePath)
File(imagePath)
OS Error: No such file or directory
camera
代码预览
在这两种情况下获取 appFolder 的代码
import 'package:provider/provider.dart';
final dbFolder = await getApplicationDocumentsDirectory();
用于显示图像的代码
import 'package:flutter/material.dart';
// just the relevant code to display the image
Center(
child: Image.file(Platform.isIOS
? File(appFolder + '/' + imagePath)
: File(appFolder + imagePath)),
),
用于列出文件夹中文件的代码
import 'dart:io';
void _getDirectoryList() async {
fileList = Directory(appFolder).listSync(followLinks: true);
final List<FileSystemEntity> entities =
await Directory(appFolder).list().toList();
entities.forEach(print);
}
我这样做是为了创建应用程序数据库和用户生成的图像文件的存档,但卡住了在 .ApplicationDocumentsDirectory
任何帮助或指示将不胜感激!
答:
0赞
returnVoid
10/27/2022
#1
看看 entities.forEach 中的“print”是做什么的。如果您尝试打印要使用 debugPrint(item) 的文件的名称
void _getDirectoryList() async {
fileList =
Directory(appFolder).listSync(followLinks: true);
final List<FileSystemEntity> entities =
await Directory(appFolder).list().toList();
entities.forEach((item) => debugPrint(item.toString());
}
查看 debugPrint 和 forEach 以了解有关问题所在的更多信息。
评论