HarmonyOS 如何通过Device File Browser往沙盒里创建文件夹、上传文件

HarmonyOS
2025-01-09 17:28:27
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
zxjiu

示例参考如下:

1、raw目录下的文件拷贝到沙箱目录下。

myRawfileCopy() {
  let context = getContext(this) as common.UIAbilityContext;
  //rawfile目录下文件
  context.resourceManager.getRawFileContent("first.html", (err: BusinessError, data: Uint8Array) => {
    if (err != null) {
      console.error(`打开first.html失败: ${err.message}`)
    } else {
      let buffer = data.buffer
      let sanboxPath = context.filesDir
      console.log('沙箱路径是: ' + sanboxPath)
      console.log('databaseDir: ' + context.databaseDir)

      console.log('沙箱路径dirPath是: ' + sanboxPath)

      let filePath = sanboxPath + "/first.html"
      let file = fs.openSync(filePath, fs.OpenMode.CREATE | fs.OpenMode.READ_WRITE)

      try {
        fs.writeSync(file.fd, buffer) // 拷贝文件到沙箱,为了简便,这里是直接getrawfilecontent然后写入,当文件过大时内存压力会很大,如需优化,可通过buffer进行读取
        fs.close(file.fd)
        // 把沙箱中的文件第一行读出来,验证是否拷贝成功;(fs.readFileSync 方法读取整个文件)
        let data = fs.readTextSync(filePath);
        console.log('拷贝成功 success ' + data)
      } catch (err) {
        console.log('拷贝失败 error')
      }
      uri = 'file:///data/storage/el2/base/haps/entry/files/first.html'
      console.log("uri:" + uri)
    }
  })
}

2、raw目录下的db文件拷贝到沙箱目录下。

copy_db_base() {
  let dbName = 'voice.db'
  let rdbPath = context.databaseDir + '/rdb'
  context.resourceManager.getRawFileContent(dbName, (_err, value) => {
    let myBuffer: ArrayBufferLike = value.buffer
    if (fs.accessSync(rdbPath)) { //以同步方法检查文件是否存在。
      console.log(`rdb 文件夹 已存在  不创建`);
    } else {
      fs.mkdirSync(rdbPath);
      console.error(`rdb 文件夹 不存在 创建`);
    }
    let dbPath = rdbPath + '/' + dbName;
    console.log("数据库地址dbPath:" + dbPath);
    let file = fs.openSync(dbPath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
    let writeLen = fs.writeSync(file.fd, myBuffer);
    console.info("写入数据和文件成功,db大小是:" + writeLen);
    fs.closeSync(file);
  });
}
分享
微博
QQ
微信
回复
2025-01-09 19:56:40
相关问题
怎样在根目录中创建文件夹
4655浏览 • 1回复 待解决
HarmonyOS 如何创建文件
291浏览 • 1回复 待解决
如何打开指定文件夹,选择文件返回
9290浏览 • 1回复 待解决
如何实现文件不存在则创建文件
2483浏览 • 1回复 待解决
apache下文件夹没有访问权限
2869浏览 • 0回复 待解决
打包包含ohosTest文件夹和test文件夹
1107浏览 • 1回复 待解决
HarmonyOS 创建文件的消失了?
330浏览 • 1回复 待解决
HarmonyOS 下载文件到指定文件夹
385浏览 • 1回复 待解决