getApplicationDocumentsDirectory 在 flutter 桌面(Windows)上不起作用

Alo*_*mar 12 windows desktop android dart flutter

如何在 Windows 上的 flutter 桌面上保存和打开文件。getApplicationDocumentsDirectory 不适用于 Windows 应用程序的 flutter 桌面

Future<String> get _localPath async {
  final directory = await getApplicationDocumentsDirectory();
  print('$directory');
  return directory.path;
}
Run Code Online (Sandbox Code Playgroud)

抛出错误。

Exception has occurred
MissingPluginException (MissingPluginException(No implementation found for method getApplicationDocumentsDirectory on channel plugins.flutter.io/path_provider))
Run Code Online (Sandbox Code Playgroud)

小智 5

在 pubspec.yaml 文件中添加 (path_provider: ^1.6.24) 导入包到我们的文件中 (import 'package:path_provider/path_provider.dart';)


Emi*_*ile 1

为了让桌面插件正常工作,我发现我需要将 flutter 专门为桌面提供的插件复制到我的项目中。我还更新了 yaml 配置。

插件来源。 https://github.com/google/flutter-desktop-embedding/tree/master/plugins/flutter_plugins/path_provider_fde

注意:我相信这些插件将会改变并最终成为默认安装包的一部分。

像 getApplicationDocumentsDirectory 这样的东西是由 Flutter 提供的,但是 windows 实现目前正在开发中,所以你必须提供具有 windows/mac/linux 实现的附加插件。可以在 flutter 桌面页面上找到。(上面的链接)

下面是我的文件夹的样子。

在此输入图像描述

还有我的 pubspec.yaml dependencies: logger: ^0.9.1 dependencies: auto_size_text: ^2.1.0 draggable_scrollbar: ^0.0.4 provider: ^4.0.1 flutter: sdk: flutter file_chooser: git: url: git://github.com/google/flutter-desktop-embedding.git path: plugins/file_chooser ref: 4ee135c path_provider: ^1.5.1 path_provider_macos: ^0.0.1 path_provider_fde: path: ./plugins/flutter_plugins/path_provider_fde window_size: path: ./plugins/window_size url_launcher: ^5.4.0 url_launcher_fde: path: ./plugins/flutter_plugins/url_launcher_fde