首页 > 解决方案 > 在项目中查找 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);
  }

} 

标签: flutterdart

解决方案


不,该文件是在您的测试设备的存储中创建的,而不是在您的项目文件夹中。您可以使用 读取文件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}");

推荐阅读