uniapp原生插件之安卓文件操作原生插件

插件介绍

安卓文件操作原生插件,读写文件,文件下载等,支持读取移动设备路径等外部存储设备路径,如U盘路径

插件地址

安卓文件操作原生插件 - DCloud 插件市场

超级福利

uniapp 插件购买超级福利

详细使用文档

uniapp 安卓文件操作原生插件使用文档

插件所需权限

  • android.permission.INTERNET
  • android.permission.WRITE_EXTERNAL_STORAGE
  • android.permission.READ_EXTERNAL_STORAGE

用法

在需要使用插件的页面加载以下代码

javascript 复制代码
const module = uni.requireNativePlugin("leven-file-FileModule");

页面内容

html 复制代码
<template>
  <view>
    <uni-card title="文件类">
      <button type="primary" @click="getFileFromSdcard">从sd卡取文件</button>
      <button type="primary" @click="saveFileToSdcard">保存文件到sd</button>
      <button type="primary" @click="getFileSizes">获取文件大小</button>
      <button type="primary" @click="getDirSize">递归取得文件夹大小</button>
      <button type="primary" @click="formatFileSize">格式化文件大小</button>
      <button type="primary" @click="getFileListCount">递归求取目录文件个数</button>
      <button type="primary" @click="searchSdCardExtFile">根据扩展名搜索sdcard文件</button>
      <button type="primary" @click="searchKeywordFile">根据关键字搜索sdcard文件</button>
      <button type="primary" @click="getDirAllFiles">获取目录下所有的文件</button>
      <button type="primary" @click="copyFile">复制文件</button>
      <button type="primary" @click="deleteFile">删除文件或目录</button>
      <button type="primary" @click="writeFile">写文件</button>
      <button type="primary" @click="getPathFileName">获取路径的文件名</button>
      <button type="primary" @click="readFileLine">读取文件(按行读取)</button>
      <button type="primary" @click="readFile">读取整个文件</button>
      <button type="primary" @click="downloadFile">下载文件</button>
    </uni-card>
  </view>
</template>

<script>
  import {
    requestAndroidPermission
  } from "@/utils/permission.js"
  const module = uni.requireNativePlugin("leven-file-FileModule");
  export default {
    data() {
      return {}
    },
    mounted() {
      // 动态开启应用权限
      this.openAndroidPermission();
    },
    methods: {
      // 从sd卡取文件
      getFileFromSdcard() {
        module.getFileFromSdcard({
          filename: "leven_file/a/1.txt"
        }, res => {
          console.log(res)
        })
      },
      // 保存文件到sd
      saveFileToSdcard() {
        module.saveFileToSdcard({
          filename: "leven_file/a/save1.txt",
          content: "这是一条测试内容"
        }, res => {
          console.log(res)
        })
      },
      // 获取文件大小
      getFileSizes() {
        module.getFileSizes({
          filePath: "/storage/emulated/0/leven_file/a/1.txt",
        }, res => {
          console.log(res)
        })
      },
      // 递归取得文件夹大小
      getDirSize() {
        module.getDirSize({
          dirPath: "/storage/emulated/0/qqmusic",
        }, res => {
          console.log(res)
        })
      },
      // 格式化文件大小
      formatFileSize() {
        module.formatFileSize({
          size: 3456789,
        }, res => {
          console.log(res)
        })
      },
      // 递归求取目录文件个数
      getFileListCount() {
        module.getFileListCount({
          dirPath: "/storage/emulated/0/qqmusic",
        }, res => {
          console.log(res)
        })
      },
      // 根据扩展名搜索sdcard文件
      searchSdCardExtFile() {
        module.searchSdCardExtFile({
          dirPath: "/storage/emulated/0/qqmusic",
          ext: ['png', 'txt'],
        }, res => {
          console.log(res)
        })
      },
      // 根据关键字搜索sdcard文件
      searchKeywordFile() {
        module.searchKeywordFile({
          dirPath: "/storage/emulated/0/qqmusic",
          keyword: "1",
        }, res => {
          console.log(res)
        })
      },
      // 获取目录下所有的文件
      getDirAllFiles() {
        module.getDirAllFiles({
          dirPath: "/storage/emulated/0/qqmusic"
        }, res => {
          console.log(res)
        })
      },
      // 复制文件
      copyFile() {
        module.copyFile({
          fromFilename: "/storage/emulated/0/qqmusic/easter_egg_config_res/easter_egg_51.png",
          toFilename: "/storage/emulated/0/leven_file/b/egg_51.png"
        }, res => {
          console.log(res)
        })
      },
      // 删除文件或目录
      deleteFile() {
        module.deleteFile({
          filePath: "/storage/emulated/0/leven_file/a/egg_51.png"
        }, res => {
          console.log(res)
        })
      },
      // 写文件
      writeFile() {
        module.writeFile({
          filename: "/storage/emulated/0/leven_file/a/test_write.txt",
          content: "123456\n",
          append: true
        }, res => {
          console.log(res)
        })
      },
      // 获取路径的文件名
      getPathFileName() {
        module.getPathFileName({
          filePath: "/storage/emulated/0/leven_file/a/test_write.txt"
        }, res => {
          console.log(res)
        })
      },
      // 读取文件(按行读取)
      readFileLine() {
        module.readFileLine({
          filename: "/storage/emulated/0/leven_file/a/test_write.txt",
          startLine: 1,
          lineCount: 1
        }, res => {
          console.log(res)
        })
      },
      // 读取整个文件
      readFile() {
        module.readFile({
          filename: "/storage/emulated/0/leven_file/a/test_write.txt",
          removeWrap: false
        }, res => {
          console.log(res)
        })
      },
      // 下载文件
      downloadFile() {
        module.downloadFile({
          url: "http://www.yeyuboke.com/svga/1.svga",
          saveDir: "/storage/emulated/0/leven_file/"
        }, res => {
          console.log(res)
        })
      },
      showToast(content) {
        uni.showToast({
          title: content,
          icon: "none"
        })
      },
      // 开启应用权限
      openAndroidPermission() {
        let that = this;
        requestAndroidPermission("android.permission.READ_EXTERNAL_STORAGE").then(res => {
          that.showToast(res)
        })
        requestAndroidPermission("android.permission.WRITE_EXTERNAL_STORAGE").then(res => {
          that.showToast(res)
        })
      }
    }
  }
</script>

<style>

</style>

插件方法

  1. 从sd卡读取文件
  2. 保存文件到sd卡
  3. 获取文件大小
  4. 递归取得文件夹大小
  5. 格式化文件大小
  6. 递归求取目录文件个数
  7. 根据扩展名搜索sdcard文件
  8. 根据关键字搜索sdcard文件
  9. 获取目录下所有的文件
  10. 复制文件
  11. 删除文件或目录
  12. 写文件
  13. 获取路径的文件名
  14. 读取文件(按行读取)
  15. 读取整个文件
  16. 远程下载文件到本地
  17. 获取U盘路径
  18. 移动文件
  19. 获取重定向真实url
  20. 批量下载文件(可下载重定向地址)

具体方法的使用可参考详细使用文档

联系作者

购买插件前请先试用,试用通过再购买。在试用中如果遇到任何问题,可与作者联系,QQ:334106817,将全力协助你使用本插件

预览图片

相关推荐
hunterandroid1 分钟前
[鸿蒙从零到一] HarmonyOS 分布式能力与设备协同实战:从发现设备到任务闭环
前端
lichenyang45317 分钟前
从图片创作到本地可复现的 AIGC 全栈闭环:AIGC Creative Studio 实践复盘
前端·后端
牧艺24 分钟前
别急着 Vibe Coding:AI 三小时写完需求后,我为什么宁愿多花一天
前端·agent·vibecoding
java1234_小锋25 分钟前
Vue3+Vite简介以及构建第一个HelloWorld实例
前端·javascript·vue.js·vite
前进的搬砖er26 分钟前
1.cesium 的基础知识篇
前端
计算机魔术师30 分钟前
在 M1 Max 上运行 2.8T 参数的 Kimi K3:Deltafin 项目实现 0.0687 token/s 推理
前端
黄林晴32 分钟前
你敢信吗?同样是跨端,KMP 跟 RN 居然差这么多!
android·前端
windliang34 分钟前
Claude Code 源码分析(四):Tool 工具系统-从 Schema 到真实执行
前端·ai编程·claude
10WTW011 小时前
Sprite-Motion-Lab:雪碧图动画编辑器
前端·css·雪碧图·spritemotionlab·10wtw01
夏天要喝冰可乐1 小时前
用 Gitee Go 搭建WorkBuddy云端定时任务
前端·ai编程