Android file 封装,FileUtils Android文件类操作封装

更新记录

1.0.0(2021-02-03)

1.初始化项目

2.支持指定内部存储中的目录

3.支持筛选文件类型

平台兼容性

Android

iOS

适用版本区间:4.4 - 11.0

×

原生插件通用使用流程:

购买插件,选择该插件绑定的项目。

在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。

根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。

打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。

开发完毕后正式云打包

注意事项:使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json->“App原生插件配置”->”云端插件“列表中删除该插件重新选择

K-FileUtilsModule 简介

Android文件操作类封装,Android原生插件,如获取内部存储中某个目录下的,某些文件类型的,所有文件,支持如下:

支持设置目录,获取内部存储中某个目录下的所有文件

支持设置筛选文件类型

返回文件的名字,路径,最后修改时间

支持错误回调,若没有获取成功,会有错误回调提示

使用说明

调用方法:

/**

* 获取内部存储绝对路径,异步方法,方便getFilesAsync方法调用

* 大部分android手机外部存储路径为“/storage/emulated/0”,但也有可能对于深度定制手机,可能不是这个,所以把这个开放出来

*/

getExternalStorageDirectory() {

const plugin = uni.requireNativePlugin('K-FileUtilsModule');

plugin.getExternalStorageDirectory({},

result = >{

console.log(result);

this.content = result;

});

},

/**

* 获取手机所有文件,即默认所有参数不传

* 异步方法,因获取存储中所有文件,比较耗时,请耐心等待

*/

getFilesAsync() {

uni.showLoading({

title: '请稍后...'

});

const plugin = uni.requireNativePlugin('K-FileUtilsModule');

plugin.getFilesAsync({},

result = >{

uni.hideLoading();

//这里loading可能会先消失,然后待一段时间才会在ui上显示,原因是数据大多,ui渲染需要时间,这里用户可根据自己情况自行优化,这里建议拿到所有数据后,先渲染前10条,再继续向下渲染

this.content = JSON.stringify(result);

});

},

/**

* 传参示例,获取手机内部存储DCIM文件夹下的所有图片文件

* path: 内部存储中某个文件夹的绝对路径,默认不传此参数为,内部存储中所有文件

* fileTypes:筛选文件的类型(文件的后缀名),默认不传此参数,为所有文件类型都搜索出来;这里列举出两个样例:

* 所有图片:let arrPic = ["jpg", "png", "jpeg", "bmp", "tif", "gif", "pcx", "tga", "exif", "fpx", "svg", "psd"];

所有视频:let arrVideo = ["mp4", "rm", "rmvb", "mpeg", "mov", "mtv", "wmv", "avi", "3gp", "amv", "dmv", "flv", "mkv","mpg","mk", "m4v"];

* isNeedRareFiles:是否筛选出一些少见的文件,如可能会有一些系统文件,这类文件不带后缀名,不常见的文件,默认不传此参数,不搜索出这类文件,如果想要这些文件,请设置为true

*/

getFilesAsyncPicInDCIM() {

uni.showLoading({

title: '请稍后...'

});

const plugin = uni.requireNativePlugin('K-FileUtilsModule');

//主线程同步方法

plugin.getExternalStorageDirectory({},

result = >{

let pathSdcard = result;

//所有图片

let arrPic = ["jpg", "png", "jpeg", "bmp", "tif", "gif", "pcx", "tga", "exif", "fpx", "svg", "psd"];

//所有视频

let arrVideo = ["mp4", "rm", "rmvb", "mpeg", "mov", "mtv", "wmv", "avi", "3gp", "amv", "dmv", "flv", "mkv", "mpg", "mk", "m4v"];

plugin.getFilesAsync({

path: pathSdcard + '/DCIM',

fileTypes: arrPic

},

result = >{

uni.hideLoading();

console.log(JSON.stringify(result));

this.content = JSON.stringify(result);

});

});

}

传参说明:

参数

类型

默认值

说明

path

String

不传此参数为手机所有文件

指定内部存储某个目录下的所有文件,用法示例,可参看[调用方法]中的代码示例

fileTypes

Array

不传此参数为全部文件类型

筛选文件的类型(文件的后缀名),默认不传此参数,为所有文件类型都搜索出来;这里列举出两个样例:所有图片:let arrPic = ["jpg", "png", "jpeg", "bmp", "tif", "gif", "pcx", "tga", "exif", "fpx", "svg", "psd"];所有视频:let arrVideo = ["mp4", "rm", "rmvb", "mpeg", "mov", "mtv", "wmv", "avi", "3gp", "amv", "dmv", "flv", "mkv","mpg","mk", "m4v"];

isNeedRareFiles

Boolean

不传此参数,不需要稀有文件

是否筛选出一些稀有少见的文件,如可能会有一些系统文件,这类文件不带后缀名,不常见的文件,默认不传此参数,不搜索出这类文件,如果想要这些文件,请设置为true

3.返回参数说明

{

"code":"0",

"msg":"success",

"data":[

{

"name":"IMG_20210202_162658.jpg",//文件名字

"lastModifiedTime":1612254420000,//文件最后修改时间

"path":"/storage/emulated/0/DCIM/Camera/IMG_20210202_162658.jpg"//文件路径

},

{

"name":"IMG_20210202_162649.jpg",

"lastModifiedTime":1612254411000,

"path":"/storage/emulated/0/DCIM/Camera/IMG_20210202_162649.jpg"

}

]

}

4.问题汇总:

(1).若返回的路径无法使用(如,在image组件中无法展示,uni.uploadFile无法识别到本路径),请在返回后的相关路径前加"file://"再尝试使用

5.联系方式:

若有插件问题或需求,可以评论留言描述,或加本人QQ

我的QQ是:3516626205 (加好友麻烦备注:uni文件操作插件)

支持付费定制

本sdk的使用许可,详见HBuilder X使用许可协议

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值