首页 > 其他分享 >Flutter+鸿蒙NEXT开发获取系统文件路径

Flutter+鸿蒙NEXT开发获取系统文件路径

时间:2024-11-05 20:17:56浏览次数:6  
标签:插件 void NEXT Future 系统文件 provider path Flutter setState

Flutter+鸿蒙NEXT开发获取系统文件路径

在具体的开发过程中,有时需要获取临时目录、文档目录等需求.本文具体讲解怎么在Flutter中可以利用path_provider插件来完成此项工作,OpenHarmony SIG组织对该插件做了鸿蒙NEXT系统的适配,接下来将详细讲解如何利用path_provider插件来获取系统文件路径。

在引用的项目中,pubspec.yaml中dependencies新增配置:

dependencies:
  path_provider:
    git:
      url: "https://gitee.com/openharmony-sig/flutter_packages.git"
      path: "packages/path_provider/path_provider"

项目根目录运行flutter pub get;(ohos/entry/oh-package.json5会自动添加如下相关插件har依赖)

{
  "name": "entry",
  "version": "1.0.0",
  "description": "Please describe the basic information.",
  "main": "",
  "author": "",
  "license": "",
  "dependencies": {
    "@ohos/flutter_ohos": "file:../har/flutter.har",
    "integration_test": "file:../har/integration_test.har",
    "path_provider_ohos": "file:../har/path_provider_ohos.har"
  }
}

导入path_provider插件

在需要使用path_provider插件的dart文件中,使用下面的代码导入插件:

import 'package:path_provider_platform_interface/path_provider_platform_interface.dart';

获取系统路径一些基本使用:

final PathProviderPlatform provider = PathProviderPlatform.instance;
	Future<String?>? _tempDirectory;
  Future<String?>? _appSupportDirectory;
  Future<String?>? _appDocumentsDirectory;
  Future<String?>? _appCacheDirectory;
  Future<String?>? _externalDocumentsDirectory;
  Future<List<String>?>? _externalStorageDirectories;
  Future<List<String>?>? _externalCacheDirectories;
  Future<String?>? _downloadsDirectory;
  
  
  void _requestTempDirectory() {
    setState(() {
      _tempDirectory = provider.getTemporaryPath();
    });
  }
  
  void _requestAppDocumentsDirectory() {
    setState(() {
      _appDocumentsDirectory = provider.getApplicationDocumentsPath();
    });
  }

	void _requestAppSupportDirectory() {
    setState(() {
      _appSupportDirectory = provider.getApplicationSupportPath();
    });
  }

  void _requestAppCacheDirectory() {
    setState(() {
      _appCacheDirectory = provider.getApplicationCachePath();
    });
  }

  void _requestExternalStorageDirectory() {
    setState(() {
      _externalDocumentsDirectory = provider.getExternalStoragePath();
    });
  }

  void _requestExternalStorageDirectories(StorageDirectory type) {
    setState(() {
      _externalStorageDirectories =
          provider.getExternalStoragePaths(type: type);
    });
  }

  void _requestExternalCacheDirectories() {
    setState(() {
      _externalCacheDirectories = provider.getExternalCachePaths();
    });
  }

  void _requestDownloadsDirectory() {
    setState(() {
      _downloadsDirectory = provider.getDownloadsPath();
    });
  }

以上就是Flutter+鸿蒙NEXT开发获取系统文件路径具体实现.

标签:插件,void,NEXT,Future,系统文件,provider,path,Flutter,setState
From: https://blog.51cto.com/u_17100710/12462985

相关文章

  • 鸿蒙 next 实现应用内的暗黑模式切换
    鸿蒙next实现应用内的暗黑模式切换实现暗黑模式的大致思路是利用@Provider与@Consume共享一个lightMode变量,在页面创建时读取持久化的lightMode,来实现暗黑模式。1.在Entry页面使用@Provide注解lightMode@Entry@ComponentstructQuickTestMainPage{@Providelig......
  • 鸿蒙Next安全控件深度揭秘:粘贴与保存控件全解析
    本文旨在深入探讨华为鸿蒙HarmonyOSNext系统(截止目前API12)在开发多语言电商平台方面的技术细节,基于实际开发实践进行总结。主要作为技术分享与交流载体,难免错漏,欢迎各位同仁提出宝贵意见和问题,以便共同进步。本文为原创内容,任何形式的转载必须注明出处及原作者。在鸿蒙Next......
  • 鸿蒙Next安全访问新范式:系统Picker与安全控件解析
    本文旨在深入探讨华为鸿蒙HarmonyOSNext系统(截止目前API12)在开发多语言电商平台方面的技术细节,基于实际开发实践进行总结。主要作为技术分享与交流载体,难免错漏,欢迎各位同仁提出宝贵意见和问题,以便共同进步。本文为原创内容,任何形式的转载必须注明出处及原作者。在当今数字化......
  • flutter 专题四 Flutter渲染流程
    一、Widget- Element -RenderObject关系二、Widget、Element、RenderObject分别表示什么2.1 Widget    Widget描述和配置子树的样子Widget就是一个个描述文件,这些描述文件在我们进行状态改变时会不断的build。但是对于渲染对象来说,只会使用最小的开销来......
  • flutter 专题五 Flutter面试之事件分发机制
    一、Flutter中事件分发的主要类及以及它们之间的关系1.1主要的类PointerEvent、HitTestResult、HitTestEntry、RenderObject1.2 PointerEventPointerEvent是Flutter中所有事件的基类。它包含了事件的类型、位置、时间戳、设备信息等。PointerEvent的子类包括PointerDownE......
  • 移植 AWTK 到 纯血鸿蒙 (HarmonyOS NEXT) 系统 (8) - 原生输入法
    AWTK在嵌入式平台使用内置的输入法,在移动设备上使用系统的原生输入法。在AWTK-Android和AWTK-IOS中,使用的是SDL封装之后的系统原生输入法。在AWTK-HarmonyOS中,要使用系统的原生输入法。需要实现input_method接口:1.启动输入法编辑器得到焦点时,启动输入法。调......
  • 鸿蒙Next应用本地化:多语言社交应用
    本文旨在深入探讨华为鸿蒙HarmonyOSNext系统(截止目前API12)在开发多语言社交应用方面的技术细节,基于实际开发实践进行总结。主要作为技术分享与交流载体,难免错漏,欢迎各位同仁提出宝贵意见和问题,以便共同进步。本文为原创内容,任何形式的转载必须注明出处及原作者。一、应用场景......
  • 鸿蒙Next应用本地化:多语言新闻阅读应用
    本文旨在深入探讨华为鸿蒙HarmonyOSNext系统(截止目前API12)在开发多语言新闻阅读应用方面的技术细节,基于实际开发实践进行总结。主要作为技术分享与交流载体,难免错漏,欢迎各位同仁提出宝贵意见和问题,以便共同进步。本文为原创内容,任何形式的转载必须注明出处及原作者。一、应用......