flutter - 在项目中查找 Dart.io 和 getApplicationDocumentsDirectory 生成的文件
问题描述
我有一个 Flutter 项目,我在其中使用 path_provider 插件来生成应存储 appData 文件的目录。
该插件正在正常工作,因为它正在正确生成 c 目录文件路径,但是一旦文件被写入和读取,我就无法在我的项目结构中看到该文件以准确查看写入的内容。有没有办法查看我使用 Dart.IO 写入的文件?
import 'package:path_provider/path_provider.dart';
class AppDataService {
Future<String> get _appDataLocalPath async {
final directory = await getApplicationDocumentsDirectory();
return directory.path;
}
Future<File> get appDataFile async {
final path = await _appDataLocalPath;
log("Path: " + path);
return File('$path/appData.json');
}
Future<void> write() async {
final file = await appDataFile;
file.writeAsString("Test write");
var out = await file.readAsString();
log("Written: " + out);
}
}
解决方案
不,该文件是在您的测试设备的存储中创建的,而不是在您的项目文件夹中。您可以使用 读取文件dart:io
,并将其显示在您的应用程序中,否则您需要在测试设备的文档中查看它。
提示 如果您使用的是 iOS 模拟器或 Android 模拟器,这些设备存储在您的计算机上,因此这些设备的文档也将在您的计算机上。
例如:存储在 MacOS 上运行的 iPhone 6S 模拟器上的文件
Users/musa/Library/Developer/CoreSimulator/Devices/4C133A22-3A0D-4F4B-A839-A799BD3614E9/data/Containers/Data/Application/E5B0A154-46BB-4E25-9A25-9DE0C53648D1/Library/Caches/output_dir/output.mp4
要获取文件路径,请尝试以下操作:
final file = await appDataFile;
//Click on it when it is printed in the output window.
print("file://${file.path}");
推荐阅读
- python - Django 休息框架 - API 视图抱怨 NoneType 响应
- c - 谁能帮我找出这个 C 代码中的问题?
- angular - 在 Angular 6 中处理请求的开始和结束
- c - 我的代码在 Linux 上给出了环境变量
- matrix - 从矩阵中删除不匹配的元素
- python - 使用 PIL 将图像转换为 rgb 数组并手动将其转换为 CMYK 数组
- c - C - 如何在 ay/n 循环中排除其他输入
- angular - Angular Forms-FormArray:找不到带有路径的控件:'strains -> i'
- regex - 使用 grep 控制台突出显示文本中所有看起来像 '&name=' 的键
- sql - 我什么时候可以使用计数或大于或小于