cordova,h5创建文件,并返回文件路径

原创
2019/01/22 11:50
阅读数 367

cordova插件:cordova-plugin-file

/**
 * @param {String} basePath 文件更目录,如cordova.file.externalApplicationStorageDirectory、cordova.file.externalRootDirectory、cordova.file.externalDataDirectory、cordova.file.documentsDirectory
 * @param {String} folderName 文件夹名
 * @param {String} folderName 文件名
 * @description 创建文件,并返回文件的全路径,基于promise
 */

export default async (basePath, folderName, fileName) => {
  const appPath = basePath + folderName,
    isExistDirectory = () => {
      // 判断文件夹存不存在,不存在这创建文件夹,返回文件夹路径,如果创建失败则终止操作
      return new Promise(resolve => {
        window.resolveLocalFileSystemURL(appPath, app_path => {
          resolve(app_path)
        }, () => {
          window.resolveLocalFileSystemURL(basePath, base_path => {
            base_path.getDirectory(folderName, {
              create: true
            }, app_path => {
              resolve(app_path)
            }, () => {
              resolve()
            })
          }, () => {
            resolve()
          })
        })
      })
    },
    app_path = await isExistDirectory(),
    createFile = () => {
      // 判断文件存不存在,不存在这创建文件,返回文件路径,存在直接返回路径
      return new Promise(resolve => {
        if (!app_path) {
          resolve()
          return
        }
        app_path.getFile(fileName, {
          create: true,
          exclusive: true
        }, file_path => {
          resolve(file_path.toURL())
        }, () => {
          resolve(app_path.toURL() + fileName)
        })
      })
    }
  return createFile()
}

 

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部