| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- export default {
- // type: 本地文件系统常量,取值如下
- // 应用私有资源目录,对应常量plus.io.PRIVATE_WWW,仅应用自身可读
- // 应用私有文档目录,对应常量plus.io.PRIVATE_DOC,仅应用自身可读写
- // 应用公共文档目录,对应常量plus.io.PUBLIC_DOCUMENTS,多应用时都可读写,常用于保存应用间共享文件
- // 应用公共下载目录,对应常量plus.io.PUBLIC_DOWNLOADS,多应用时都可读写,常用于保存下载文件
- write(path, data, type=plus.io.PRIVATE_DOC) {
- console.log('[write]', path, data);
-
- return new Promise((resolve, reject) => {
- try {
- plus.io.requestFileSystem(
- type,
- fs => {
- // 创建或打开文件, fs.root是根目录操作对象,直接fs表示当前操作对象
- fs.root.getFile(
- path, {
- create: true // 文件不存在则创建
- },
- fileEntry => {
- // 文件在手机中的路径
- console.log('[write] fileEntry.fullPath', fileEntry.fullPath)
- fileEntry.createWriter(writer => {
- // 向文件中写入数据
- writer.write(data);
-
- // 文件写入成功完成的回调函数
- writer.onwrite = res => {
- console.log('[write] 写入成功', res);
- resolve(res)
- };
-
- // 文件写入操作失败时调用的回调函数
- writer.onerror = err => {
- console.log('[write] 写入失败', err);
- reject(err)
- };
- },
- err => {
- console.log('[write] createWriter failed: ' + err);
- reject(err)
- });
- },
- err => {
- console.log('[write] getFile failed: ' + err);
- reject(err)
- }
- );
- },
- err => {
- console.log('[write] requestFileSystem failed: ', err);
- reject(err)
- }
- );
- } catch(err) {
- console.error('[write] catch err', err)
- }
- })
- },
-
- read(path, type=plus.io.PRIVATE_DOC) {
- let that = this;
- return new Promise((resolve, reject) => {
- plus.io.requestFileSystem(
- type,
- fs => {
- fs.root.getFile(
- path, {
- create: false
- },
- fileEntry => {
- fileEntry.file(function(file) {
- console.log('[read] 文件大小:' + file.size + ' 文件名:' + file.name, file);
- //创建读取文件对象
- let fileReader = new plus.io.FileReader();
- //以文本格式读取文件数据内容
- fileReader.readAsText(file, 'utf-8');
-
- //读取文件成功完成的回调函数
- fileReader.onload = function(res) {
- console.log("[read] 文件读取操作完成", res);
- resolve(res.target.result)
- };
-
- //文件读取操作失败时调用的回调函数
- fileReader.onerror = function(err) {
- console.log("[read] 文件读取操作失败", err);
- reject(err)
- };
- });
- },
- err => {
- console.log('[read] getFile failed: ', err)
- reject(err)
- }
- );
- },
- err => {
- console.log('[read] requestFileSystem failed: ', err);
- reject(err);
- }
- );
- })
- }
- }
|