当前位置: 首页 > news >正文

图书馆网站建设建议合肥seo网站排名优化公司

图书馆网站建设建议,合肥seo网站排名优化公司,建外卖网站,网站美工设计公司电话一.背景 需求是需要操作用户手机中的文件#xff0c;不是应用沙箱 二.解决方案 这里要注意的一点拿到fsOpen.path的路径再去进行open文件#xff0c;因为这里还不知道本地文件路径在哪里#xff0c;需要选择一下路径再拿到路径去请求 1.这里就是进行两个fs.open#xf…一.背景 需求是需要操作用户手机中的文件不是应用沙箱 二.解决方案 这里要注意的一点拿到fsOpen.path的路径再去进行open文件因为这里还不知道本地文件路径在哪里需要选择一下路径再拿到路径去请求 1.这里就是进行两个fs.open拿到你需要操作的文件的路径以后第一个就没用了,如果是需要新建文件也可以省去这步 const DocumentSelectOptions new picker.DocumentSelectOptions();let context getContext(this) as common.Context;// 创建文件选择器实例。const documentViewPicker new picker.DocumentViewPicker(context);documentViewPicker.select(DocumentSelectOptions).then(async (documentSelectResult) {// 获取选择路径let uri documentSelectResult[0];console.log(e2qdw,uri)// 若文件不存在则创建文件//const fsOpen await fs.open(uri,fs.OpenMode.READ_WRITE | fs.OpenMode.READ_ONLY |fs.OpenMode.CREATE)//console.log(fsOpen.path)const fsOpen await fs.open(这里的路径就是fsOpen.path,fs.OpenMode.READ_WRITE | fs.OpenMode.READ_ONLY |fs.OpenMode.CREATE)// 读取文件this.readFile(fsOpen)// 写入this.writeFile(fsOpen)}).catch((err:BusinessError) {console.error(Invoke documentPicker.select failed, code is ${err.code}, message is ${err.message});}) 2.第一步拿到以后就可以替换成这个代码 找到需要操作文件的路径DocumentSelectOptions文件选择器就没用了 async getFiles() {try {// 若文件不存在则创建文件// OpenMode.CREATE若文件不存在则创建文件。//OpenMode.TRUNC如果文件存在且文件具有写权限则将其长度裁剪为零。覆盖 不是追加const fsOpen await fs.open(/storage/Users/currentUser/Download/jrdl.json,fs.OpenMode.READ_WRITE | fs.OpenMode.READ_ONLY |fs.OpenMode.CREATE|fs.OpenMode.TRUNC)// // 读取文件this.readFile(fsOpen)// this.deleteFile(fsOpen)// 写入this.writeFile(fsOpen)} catch (e) {console.error(Invoke documentViewPicker.save failed, code is ${e.code}, message is ${e.message});}} 3.读写文件代码 readFile(fsOpen:fs.File){// 读取文件let arrayBuffer new ArrayBuffer(4096);fs.read(fsOpen.fd, arrayBuffer, (err: BusinessError, readLen: number) {if (err) {console.error(read failed with error message: err.message , error code: err.code);} else {console.info(read file data succeed);let buf buffer.from(arrayBuffer, 0, readLen);console.info(成功读取文件内容: ${buf.toString()});}// fs.closeSync(fsOpen);});}writeFile(fsOpen:fs.File){let str: string hello,word;fs.write(fsOpen.fd, str, (err: BusinessError, writeLen: number) {if (err) {console.error(write data to file failed with error message: err.message , error code: err.code);} else {promptAction.showToast({ message: 成功写入,duration:2000,alignment:Alignment.Center })console.info(成功写入大小为: writeLen);}fs.closeSync(fsOpen);});} 4.完整代码 封装成工具类了这里已经直接拿着就能用 import { BusinessError } from kit.BasicServicesKit; import fs, { ReadOptions, WriteOptions } from ohos.file.fs; // 导入文件管理模块 import { buffer } from kit.ArkTS; import { promptAction } from kit.ArkUI; import { picker } from kit.CoreFileKit; import { common } from kit.AbilityKit;//执行UDP通讯的对象 export class fileUtils {async getFiles() {try {// 若文件不存在则创建文件const fsOpen await fs.open(/storage/Users/currentUser/Download/jrdl.json,fs.OpenMode.READ_WRITE | fs.OpenMode.READ_ONLY |fs.OpenMode.CREATE|fs.OpenMode.TRUNC)// // 读取文件this.readFile(fsOpen)// this.deleteFile(fsOpen)// 写入this.writeFile(fsOpen)} catch (e) {console.error(Invoke documentViewPicker.save failed, code is ${e.code}, message is ${e.message});}}readFile(fsOpen:fs.File){// 读取文件let arrayBuffer new ArrayBuffer(4096);fs.read(fsOpen.fd, arrayBuffer, (err: BusinessError, readLen: number) {if (err) {console.error(read failed with error message: err.message , error code: err.code);} else {console.info(read file data succeed);let buf buffer.from(arrayBuffer, 0, readLen);console.info(成功读取文件内容: ${buf.toString()});}// fs.closeSync(fsOpen);});}writeFile(fsOpen:fs.File){let str: string hello,word;fs.write(fsOpen.fd, str, (err: BusinessError, writeLen: number) {if (err) {console.error(write data to file failed with error message: err.message , error code: err.code);} else {promptAction.showToast({ message: 成功写入,duration:2000,alignment:Alignment.Center })console.info(成功写入大小为: writeLen);}fs.closeSync(fsOpen);});}deleteFile(){fs.unlink(/storage/Users/currentUser/Download/jrdl.json).then(() {console.info(remove file succeed);}).catch((err: BusinessError) {console.error(remove file failed with error message: err.message , error code: err.code);});} }5.调用 new fileUtils().getFiles()
http://www.sczhlp.com/news/211852/

相关文章:

  • 微网站站点名称邯郸招工信息网
  • 深圳网站建站的公司网站添加留言板功能
  • 建站公司选址潍坊做网站价格
  • 潍坊 优化型网站建设房屋网签查询系统官方网站
  • 网站怎么做IPv6网站服务器可以自己做吗
  • 网站开发公司报价单模板百度对新网站排名问题
  • 咖啡店网站模板电子商务网站建设与管理 学习感想
  • wordpress 自动获取标签响应式网站对seo
  • 网站建设进度表模板沉浸式展厅搭建商
  • 建设银行理财产品网站苏州建设工程合同备案网站
  • wordpress模板站网页网站建设的ppt模板下载
  • 怎样做企业的网站无锡高端网站定制
  • 免费创建网站的软件建筑网app
  • 家政公司网站的建设聊城广告设计公司
  • 做网站建设涉及哪些算法外贸seo站
  • 上海网站建设多少费用建站全过程
  • 徐州市徐州市城乡建设局网站首页北京注册公司需要什么资料
  • 网站建设完毕后怎么加后台手机上如何做网站
  • 帝国cms做英文网站wordpress免费教程
  • 怎么和网站建设公司签合同免费企业电话名录
  • 网站制作怎么把网站交付河南郑州网站关键词排名助手
  • 塑胶 东莞网站建设免费cms网站管理系统
  • 口碑好的福州网站建设做解析会员电影的网站
  • 网站建设 豫icp备免费网页游戏助手
  • 网站开发前端与后端源代码网络营销核心要素
  • 专业建网站设计公司潍坊模板建站定制
  • 什么叫高端网站定制高端网站设计平台
  • 点开文字进入网站是怎么做的电商站外推广平台有哪些
  • 西部中大建设集团有限公司网站iis7部署网站
  • 网站建设资料准备标准广东上海专业网站建设公司