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

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.xdnf.cn/news/17578.html

相关文章:

  • 车规级霍尔开关芯片SC25891 | 为汽车安全带扣筑起高可靠性安全防线
  • 【MySQL】MySQL聚集索引与非聚集索引深度解析
  • 蚁剑--安装、使用
  • 基于跨平台的svg组件编写一个svg编辑器
  • 《Fast Automatic White Balancing Method by Color Histogram Stretching》论文笔记
  • ChatGpt 5系列文章1——编码与智能体
  • 自建知识库,向量数据库 体系建设(一)之BERT 与.NET 4.5.2 的兼容困境:技术代差下的支持壁垒
  • 2025杭电多校第七场 矩形框选、伤害冷却比 个人题解
  • Ansible 详细笔记
  • 高性能web服务器Nginx
  • Linux 系统运维、网络、SQL Server常用命令
  • Mac如何安装telnet命令
  • 3D文档控件Aspose.3D实用教程:在 C# 中将 3MF 文件转换为 STL
  • 深度学习与遥感入门(六)|轻量化 MobileNetV2 高光谱分类
  • UNet改进(32):结合CNN局部建模与Transformer全局感知
  • HTTP应用层协议-长连接
  • (25.08)Ubuntu20.04+ROS1复现LIO-SAM
  • 2025年最新原创多目标算法:多目标酶作用优化算法(MOEAO)求解MaF1-MaF15及工程应用---盘式制动器设计,提供完整MATLAB代码
  • 【代码随想录day 18】 力扣 501.二叉搜索树中的众数
  • 力扣热题100------279.完全平方数
  • 吉利汽车7月销量超23.7万辆 同比增长58%
  • 【嵌入式C语言】
  • 【10】微网优联——微网优联 嵌入式技术一面,校招,面试问答记录
  • 数据结构:串、数组与广义表
  • IP分片(IP Fragmentation)
  • 力扣109:有序链表转换二叉搜索树
  • docter的使用、vscode(cursor)和docker的连接,详细分析说明
  • 【3D Gen 入坑(1)】Hunyuan3D-Paint 2.1 安装 `custom_rasterizer` 报错完整排查
  • 面试题-----RabbitMQ
  • MySQL的索引(索引的数据结构-B+树索引):