因为经常会用到文件操作相关的功能,而uniapp提供的H5+ IO模块管理本地文件系统,局限性真的非常非常大 ,所以写了一个原生的安卓文件操作插件。

功能包括:创建目录、创建txt文件并写入内容、复制/移动/重命名/删除目录或文件、调用本机应用打开或分享文件、压缩/解压目录或文件、base64数据和本地图片的相互转换、获取文件列表等。

下面放了示例apk的二维码,感兴趣的可以下载体验一下:

插件地址

安卓文件操作插件 - DCloud 插件市场 https://ext.dcloud.net.cn/plugin?id=7983#detail

平台兼容性

Android iOS
适用版本区间:5.0 - 11.0 支持CPU类型:armeabi-v7a,arm64-v8a,x86 ×

1、权限接口

1.1 判断并授权所有文件的管理权限

getFileManagePermission(res=>{console.log(res);res={"hasPermission":true/false}
});

2、文件操作接口

在调用文件操作接口之前,请先获取所有文件的管理权限

2.1 获取公共目录路径

getPublicPath({type: 0, //见注释1,0:获取外部存储目录路径
},res=>{console.log(res);res={"code": 0,"message": "获取成功","data":"获取的路径"}res={"code": 1,"message": "获取失败",}
})

2.2 创建目录

createDirectory({dirPath:"",//目录,使用绝对路径
},res=>{console.log(res);res={"code": 0,"message": "目录创建成功",}res={"code": 1,"message": "目录创建失败",}res={"code": 2,"message": "目录已存在",}
})

2.3 创建TXT文件,并写入内容

createTxtFile({dirPath: "", // 文件所在目录,目录不存在则自动创建,使用绝对路径fileName: "", // 文件名称,不要添加后缀名,例如:MyTestFilemessages: [], // 文件内容,字符串数组格式,写入时自动换行,例如:["第一条信息","第二条信息"]append: true, // true:文件已存在时在原文件内追加内容,false:文件已存在时覆盖原文件
},res=>{console.log(res);res={"code": 0,"message": "文件创建成功"}res={"code": 1,"message": "文件创建失败"}
})

2.4 复制目录或文件

copyFile({fromPath: "", //待复制的目录或文件,使用绝对路径toPath: "", //要粘贴到的目录,目录不存在时自动创建,使用绝对路径
},res=>{console.log(res);res={"code": 0,"message": "复制成功",}res={"code": 1,"message": "复制失败",}res={"code": 2,"message": "目录或文件不存在",}res={"code": 3,"message": "其他错误原因",}
})

2.5 重命名目录或文件

renameFile({oldPath: "", //待重命名的目录或文件,使用绝对路径newPath: "", //新目录或文件,使用绝对路径
},res=>{console.log(res);res={"code": 0,"message": "重命名成功",}res={"code": 1,"message": "重命名失败",}res={"code": 2,"message": "目录或文件不存在",}
})

2.6 移动目录或文件

(本质上是先复制,再删除原文件)

moveFile({fromPath: "", //待移动的目录或文件,使用绝对路径toPath: "", //要移动到的目录,目录不存在时自动创建,使用绝对路径
},res=>{console.log(res);res={"code": 0,"message": "移动成功"}res={"code": 1,"message": "移动失败",}res={"code": 2,"message": "目录或文件不存在",}
})

2.7 删除目录或文件

deleteFile({path: "", //目录或文件,使用绝对路径
},res=>{console.log(res);res={"code": 0,"message": "删除成功",}res={"code": 1,"message": "删除失败",}res={"code": 2,"message": "目录或文件不存在",}
})

2.8 获取"当前目录"或"当前文件所在目录"下的所有文件和文件夹列表

getFileList({path: "", //目录或文件,使用绝对路径
},res=>{console.log(res);res={"code": 0,"message": "读取成功","data":[{"name":"文件名","path":"文件绝对路劲","isFile":"是否是文件","isDirectory":"是否是目录","lastModified":"最后一次修改时间","length":"文件大小",}……]}res={"code": 1,"message": "读取失败",}res={"code": 2,"message": "目录或文件不存在",}
})

2.9 调用本机应用打开文件

openFile({filePath: '', //文件绝对路径
},res=>{console.log(res);res={"code": 0,"message": "调用成功",}res={"code": 1,"message": "调用失败",}
})

2.10 调用本机应用分享文件

shareFile({filePath: '', //文件绝对路径
},res=>{console.log(res);res={"code": 0,"message": "调用成功",}res={"code": 1,"message": "调用失败",}
})

2.11 Base64Data转本地图片

调用saveBase64Data方法时,'data:image/jpeg;base64,' 需要替换成''

saveBase64Data({base64Data: "", //base64数据,去掉开头的数据类型字符串"data:image/jpeg;base64,"filePath: "",//输出的图片文件路径,使用绝对路径
},res=>{console.log(res);res={"code": 0,"message": "转换成功",}res={"code": 1,"message": "转换失败",}
})

2.12 本地图片转Base64Data

getBase64Data({filePath: '', //待处理的本地图片文件路径,使用绝对路径
},res=>{console.log(res);res={"code": 0,"message": "转换成功","data":'完整的base64数据'}res={"code": 1,"message": "转换失败",}
})

2.13 压缩目录或文件

compressFile({path:"", //要压缩的目录或文件,使用绝对路径zipFilePath: "", //压缩完成的Zip文件路径,使用绝对路径,允许重命名压缩文件
},res=>{console.log(res);res={"code": 0,"message": "压缩成功",}res={"code": 1,"message": "压缩失败",}
})

2.14 解压zip文件

extractFile({zipFilePath: "", //要解压的Zip文件路径,使用绝对路径dirPath: "", //输出目录,即解压后的目录或文件所在目录,使用绝对路径rename: "",//重命名解压文件,可选参数
},res=>{console.log(res);res={"code": 0,"message": "解压成功",}res={"code": 1,"message": "解压失败",}
})

2.15 通过安卓存储访问框架打开目录

openDirectoryBySAF({dirPath: "", //目录,使用绝对路径
},res=>{console.log(res);res={"code": 0,"message": "打开成功",}res={"code": 1,"message": "打开失败",}
})

3、注释

3.1 获取公共目录路径

type 说明
0 获取外部存储目录
1 获取应用私有目录
2 获取公共文档目录
3 获取公共下载目录
4 获取DCIM(相册)目录
5 获取公共图片目录
6 获取公共视频目录
7 获取公共音乐目录

uniapp之安卓文件操作插件相关推荐

  1. 安卓文件操作全解:内部文件、公共文件、私有文件、app静态文件

    全栈工程师开发手册 (作者:栾鹏) 安卓教程全解 安卓文件操作全解:内部文件.公共文件.私有文件.app静态文件. 读内部文件(当前应用程序文件夹下文件) public static String o ...

  2. ahk脚本,RunAny文件操作插件增强:复制图片路径为markdown相对路径并自动添加标签

    优势:自动复制为markdown相对路径,添加图片引用标签,标签命名为中文名称的首字母,如果有字母和符号则保留. 目前使用vscode写markdown文档,配置好插件以后,直接在文件浏览器中拖动确实 ...

  3. Uniapp——使用安卓原生插件

    Uniapp--使用安卓原生插件 1. 开发环境 2. 解压SDK压缩包 3. 导入UniPlugin-Hello-AS项目.并切换为project显示 4. 可删除提供的demo文件 5. 新建mo ...

  4. uniapp 原生安卓开发插件(module),以及android环境本地调试(一)

    uniapp 原生安卓开发插件(module),以及android环境本地调试 1.开发前景 由于uniapp 框架的局限先,有很多功能不能如原生android开发使用顺畅,因此,需要使用插件进行辅助 ...

  5. Uniapp 文件选择插件(支持Android11、12) Ba-FilePicker

    简介(下载地址) Ba-FilePicker 是一款uniapp文件选择插件.支持Android11.12:支持浏览目录.文件分类.类型分组3种方式(效果如图):支持单选.多选.数量限制:支持搜索.排 ...

  6. html选择文件夹插件,js/jq仿window文件夹框选操作插件

    0.先给大家看看效果: 1.创建一个index.html文件 Title ul{list-style: none} li{width:200px;margin:10px;float:left;heig ...

  7. 安卓自动操作软件 AUTO.JS 4.1.1 ALPHA2 免费版下载

    一个主要由无障碍服务实现的不需要Root权限的类似按键精灵的自动操作软件,可以实现自动点击.滑动.输入文字.打开应用等.缙哥哥目前支付宝蚂蚁森林偷能量就是基于 Auto.js 实现的. 非商业性使用  ...

  8. Uniapp 应用开机自启插件 Ba-Autoboot

    应用开机自启插件 Ba-Autoboot 插件下载地址 简介 uniapp开机自启插件 Ba-Autoboot,主要用安卓平板.电视.窗口屏.广告屏.机顶盒等等,手机的话不能保证所有. 使用方法 使用 ...

  9. uniapp 开发安卓App实现高德地图路线规划导航

    文章目录 技术概述 技术详述 问题与解决 我的总结 参考文献 技术概述 描述这个技术是做什么的/什么情况下会使用到这个技术,学习该技术的原因,技术的难点在哪里.控制在50-100字内. uniapp的 ...

  10. uni-app打包安卓app如何接入极光推送(JG-JPush)?

    最近公司在做uni-app的跨端应用,其中在打包app时需要用到消息推送功能,经过一番摸索也是终于弄通并成功集成了第三方极光推送.话不多说,直接开撸: 一.我们需要用到的一些插件以及极光平台的官网链接 ...

最新文章

  1. 再遭质疑:Chrome、Safari自动填信息可能会泄密
  2. 【Linux 内核】Linux 内核源码目录说明 ① ( arch 目录 | block 目录 | certs 目录 | crypto 目录 | Documentation 目录 )
  3. 配置防盗链、 访问控制Directory 、访问控制FilesMatch
  4. LOJ#6374 网格
  5. JMetro版本11.6.5和8.6.5发布
  6. 应用程序调试技术(更新程度:完毕)送源码及PPT
  7. python中的下标索引
  8. @RequestParam详解
  9. 使用Maven Archetype生成工程报错的解决
  10. (个人使用)uni-app开发(官方资源)· 汇总
  11. 怎么通过scanf读取一个空白前的字符
  12. AMPL_网络项目问题
  13. iOS 游戏开发教程资源
  14. 解决leetcode题目乱码问题
  15. 第7节 简单抓包实验及帧结构分析——基于科来网络分析系统
  16. 红米6.0系统如何无root激活xposed框架的教程
  17. mp4视频在flash中边下载边播放
  18. Android左右声道的控制
  19. 【UCIe】初识 UCIe
  20. python中bind的用法_Python socket.bind方法代码示例

热门文章

  1. linux云服务器,Tomcat服务器常见 The value for the useBean class attribute is invalid 错误
  2. 金叉成功率_曝光MACD零轴上的秘密:“0线下方金叉买入”千万别小看,成功率达100%!...
  3. 电脑键盘快捷键使用大全
  4. map集合和set集合
  5. python,爬取图片
  6. Spring boot 集成 Redis Scarch
  7. 请求接口时常见的数据请求类型
  8. 路由器2.4G和5G有什么区别
  9. 计算机应用技术在医院的应用,计算机应用技术对医院信息化的影响探讨
  10. 上海通用北盛汽车2012届校园招聘长春理工大学专业面试安排 共 27 人