当前位置: 首页 > news >正文

Flutter path_provider的基本使用(读写文件)

在android和ios平台下应用程序读写文件的文件目录不一样,这时候就需要path_provider来处理。
path_provider插件访问临时目录、文档目录和外部存储目录。

添加依赖

dependencies:path_provider: ^2.1.5

获取目录
效果
请添加图片描述

I/flutter (30891): /data/user/0/cn.jn.first_flutter/cache
I/flutter (30891): 文档目录:/data/user/0/cn.jn.first_flutter/app_flutter
I/flutter (30891): 外部存储目录:/storage/emulated/0/Android/data/cn.jn.first_flutter/files

android 添加权限

    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

代码

class MyState extends State {/// 获取临时目录void getTDir() {String dir = "";Future<Directory> temp = getTemporaryDirectory();temp.then((value) {dir = value.path;print(dir);});}/// 获取文档目录void getDDir() {String dir = "";Future<Directory> temp = getApplicationDocumentsDirectory();temp.then((value) {dir = value.path;print("文档目录:$dir");});}///获取外部存储目录  android使用void getEDir() {String? dir = "";Future<Directory?> temp = getExternalStorageDirectory();temp.then((value) {dir = value?.path;print("外部存储目录:$dir");});}Widget build(BuildContext context) {return Scaffold(appBar: AppBar(title: Text(""), centerTitle: true),body: Column(children: [OutlinedButton(onPressed: () {getTDir();},child: Text("获取临时目录"),),OutlinedButton(onPressed: () {getDDir();},child: Text("获取文档目录"),),OutlinedButton(onPressed: () {getEDir();},child: Text("获取外部存储目录"),),],),);}
}

创建目录

  /// 在临时目录创建目录void createTDir(String dirName) {String dir = "";Future<Directory> temp = getTemporaryDirectory();temp.then((value) {dir = value.path;print(dir);Directory("$dir/$dirName").exists().then((value) {if (!value) {Directory("$dir/$dirName").create();} else {print("目录已存在");}});});}

删除目录

  /// 在临时目录删除目录void delTDir(String dirName) {String dir = "";Future<Directory> temp = getTemporaryDirectory();temp.then((value) {dir = value.path;print(dir);Directory("$dir/$dirName").exists().then((value) {if (value) {Directory("$dir/$dirName").delete();print("目录已删除");} else {print("目录不存在");}});});}

获取指定目录下的内容

  /// 在临时目录删除目录void getTDirList() {String dir = "";Future<Directory> temp = getTemporaryDirectory();temp.then((value) {dir = value.path;print(dir);Directory("$dir").list(recursive: true).listen((event) {paths.add(event.path);}).onDone(() {print(paths);},);});}
http://www.dtcms.com/a/326892.html

相关文章:

  • Android12 Framework电话功能UI定制
  • Mac M1探索AnythingLLM+Ollama+知识库问答
  • Vue.js 样式绑定
  • 【Node.js从 0 到 1:入门实战与项目驱动】2.1 安装 Node.js 与 npm(Windows/macOS/Linux 系统的安装步骤)
  • 派聪明RAG知识库----关于elasticsearch报错,重置密码的解决方案
  • node.js简介
  • 【论文阅读】RestorerID: Towards Tuning-Free Face Restoration with ID Preservation
  • ARM芯片架构之CoreSight SoC-400 组件介绍
  • 高效解耦:自定义内核链表实现指南(简化版)
  • LLM智能:从语言模型到通用智能体的技术跃迁
  • Java多线程基础总结
  • Python类装饰器:优雅解决描述符属性命名难题
  • 内存作假常见方案可行性分析
  • 【15-多类别分类和多标签分类】
  • SSE流式输出分层与解耦、用户自动结束语错误处理
  • 基于FPGA的热电偶测温数据采集系统,替代NI的产品(一)FPGA 测温研究现状
  • 【Python修仙编程】(20) 参悟参数真谛,林羽内力大增
  • 前端工程化:pinia
  • 【Leetcode】随笔
  • 【MATLAB 2025a】安装离线帮助文档
  • 学习嵌入式之IMAX6ULL——GUN工具链+点灯+SDK开发裸机驱动
  • 计算机网络:ovn数据通信都是用了哪些协议?
  • Java String类:不可变性的核心奥秘
  • Evaluation Warning: The document was created with Spire.XLS for Pyth用Python实现Excel转PDF并去除Spire.XLS水印
  • 银河通用招人形机器人强化学习算法工程师了
  • Python 类元编程(类工厂函数)
  • C语言(06)——二、八、十、十六进制的相互转换
  • Webpack Loader 完全指南:从原理到配置的深度解析
  • TRL - Transformer Reinforcement Learning 传递给SFTTrainer的数据集
  • 【linux】企业高性能web服务器