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

教学网站建设目的域名注册是什么意思呢

教学网站建设目的,域名注册是什么意思呢,免费相册制作模板,网络动画设计是什么一.背景 需求是需要操作用户手机中的文件,不是应用沙箱 二.解决方案 这里要注意的一点拿到fsOpen.path的路径再去进行open文件,因为这里还不知道本地文件路径在哪里,需要选择一下路径再拿到路径去请求 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.yayakq.cn/news/630606/

相关文章:

  • 深圳网站建设亿联时代深圳网站设计招聘
  • 高明专业网站建设哪家好内蒙网站设计公司
  • 怎么在百度搜索自己的网站网站用视频做背景音乐
  • 重庆响应式网站多少钱网络科技公司logo
  • 亿联网络 网站怎么在网站上做下载
  • 建材板材网站源码 asp傻瓜式php网站开发工具
  • php免费企业网站模板手表哪个网站正品
  • 建设学校网站免费注册企业网站
  • 邢台做网站哪儿好如何自建一个网站
  • 网站底部关键词内链专业网站建设的软件
  • 网站建设设计制作熊掌号昆山的网站建设
  • 行知网站建设滁州网站开发
  • 深圳专业做网站的公司网站适配手机屏幕
  • 韩雪个人网站购物网站建设渠道
  • 上海人才中心网站网站上线后如何换模版
  • 江苏工程建设标准网站运营个网站需要什么条件
  • 南通网站建设seo企业营销网站模板免费下载
  • 网站建设 网站软文推广12380网站建设情况说明
  • 网站外链分析怎么做百度关键词搜索排名多少钱
  • 濮阳的网站建设右面是某网站建设立项需求
  • 怎么建设网站模板上传为什么做的网站要续费
  • 如何设计网站公司后台的网站代理维护更新
  • 南昌比较好的网站设计什么是新零售
  • 网站非法篡改产品推广宣传方案
  • 建设银行软件官方网站下载越南国家建设部网站
  • 直播网站建设需要多少钱多种成都网站建设
  • 旅游网站建设水平评价网站改版 网站存在问题
  • 网站建设销售提点20个点一般通过人体的电流超过多大
  • 郴州市北湖建设局网站wordpress增加浏览量
  • 创意网站制作哪儿能做邯郸网站建设