电商网站如何备案,台州市椒江建设工程机械厂网站,永康网站建设,中国正规官方网站有哪些一.前言
1.前景提要
DevEcoStudio版本#xff1a;DevEco Studio 3.1 Release
SDK版本#xff1a;3.2.2.5
API版本#xff1a;9
2.概念
在openharmony文件管理模块中#xff0c;按文件所有者分类分为应用文件和用户文件和系统文件。
1#xff09;沙箱文件。也叫做应…一.前言
1.前景提要
DevEcoStudio版本DevEco Studio 3.1 Release
SDK版本3.2.2.5
API版本9
2.概念
在openharmony文件管理模块中按文件所有者分类分为应用文件和用户文件和系统文件。
1沙箱文件。也叫做应用文件包括应用安装文件、应用资源文件、应用缓存文件
二.文件详解
在使用时首先需要导入包 import fs from “ohos.file.fs”
在API9之前使用“ohos.fileio”,API9之后废弃。
1.常用文件路径
沙箱文件的沙箱路径与物理路径对应关系
context属性名称沙箱路径物理路径filesDir/data/storage/el2/base/haps/entry/files/data/app/el2/100/base//haps/entry/filescacheDir/data/storage/el2/base/haps/entry/cache/data/app/el2/100/base//haps/entry/cachedistributedFilesDir分布式文件/data/storage/el2/distributedfiles/mnt/hmdfs/100/account/merge_view/data/bundleCodeDir应用文件/data/storage/el1/bundle/data/app/el1/bundle/public/
2.常用文件操作
对于文件的API分为同步和异步的API操作。若在主进程中进行了耗时的文件同步操作比如拷贝会对主进程进行阻塞一般超过6s就会发生阻塞此时需要将同步操作改为异步操作或者是新建一个worker进行文件操作。
常用的对文件的操作有以下几个以同步方法为例,异步方法可在官网查看
1目录的创建和删除
let dirPath this.context.filesDir /testDir;
fs.mkdirSync(dirPath);//创建目录
fs.rmdirSync(dirPath);2检查文件是否存在
通过检查文件是否存在再进行下一步操作避免对文件的误操作
let filePaththis.context.filesDir /test.txt;
let res fs.accessSync(filePath);
if(res){console.info(file exists);
} else {console.info(file not exists);
}3查看文件属性
文件属性主要有文件名文件大小文件的权限。
let stat fs.statSync(filePath);
console.info(get file info succeed, the stat of file is JSON.stringify(stat));4打开和关闭文件
通过打开文件可获得文件的fd通过文件的fd可以对文件进行拷贝读写和删除。fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE表示文件打开的模式以读写的模式打开不存在则创建。
let file fs.openSync(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
console.info(file fd: file.fd);
fs.closeSync(file);5读写文件
读文件通过一个ArrayBuffer数据类型的变量来存放数据。有时候需要对数据进行转换Unit8Array与ArrayBuffer相互转换。如果在数据传输的过程中出现了乱码的情况可以使用new util.TextEncoder().encodeInto(s)和new util.TextDecoder().decodeWithStream(unit8Array)进行编码和解码。readSync和readTextSync的区别主要在获取的文件内容为ArrayBuffer和string。注有时候当含有很特殊的字符时。readTextSync()无法使用。
写文件可以是字符串也可以是ArrayBufferArrayBuffer可以是Unit8Array的buffer。
读写文件时可配置读写文件的位置长度及编码。编码目前只支持“utf-8”
//read
let file fs.openSync(filePath, fs.OpenMode.READ_WRITE);
let buf new ArrayBuffer(stat.size);
fs.readSync(file.fd, buf);
fs.closeSync(file);//write
let file fs.openSync(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
let options{ offset: fs.statSync(filePath).size,length:length,encoding:utf-8 }
let str: string hello, world\nhello,openharmony;
let writeLen fs.writeSync(file.fd, str,options);
console.info(write data to file succeed and size is: writeLen);
fs.closeSync(file);//readText
class Option {offset: number 0;length: number 0;encoding: string utf-8;
}
let stat fs.statSync(filePath);
let option new Option();
option.offset 1;
option.length stat.size;
let str fs.readTextSync(filePath, option);
console.info(readText succeed: str);6文件拷贝
在使用文件拷贝的时候可以srcPath也可以使用fd可对用户文件媒体文件进行使用。
let srcPath pathDir /srcDir/test.txt;
let dstPath pathDir /dstDir/test.txt;
fs.copyFileSync(srcPath, dstPath);7文件列表
在对文件夹下的列表进行遍历的时候可进行条件过滤。过滤条件可以是后缀名称大小和时间。
class ListFileOption {public recursion: boolean false;public listNum: number 0;public filter: Filter {};
}
let option new ListFileOption();
option.filter.suffix [.png, .jpg, .jpeg];
option.filter.displayName [*abc, efg*];
option.filter.fileSizeOver 1024;
option.filter.lastModifiedAfter new Date().getTime();
let filenames fs.listFileSync(pathDir, option);
console.info(listFile succeed);
for (let i 0; i filenames.length; i) {console.info(filename: %s, filenames[i]);
}8文件删除
fs.unlinkSync(filePath);三.常用文件操作shell命令
在DevEcoStudio4.0之前是没有DeviceFileBrowser的对于文件的shell命令也需要熟悉。
文件操作的常用shell命令
创建文件夹mkdir test
添加文件touch file.txt
写入内容echo abcfile.txt
查看内容cat file.txt
查看文件的属性信息ls -l file.txt
授权 chmod -R 777 [目录/文件]
删除文件rm file.txt
删除文件夹rm rR test
查看当前所在的目录pwd
查找文件 find -name 【/目录】 “文件名”
接收文件hdc file recv “设备要导出的文件” “电脑存放文件目录”
推送文件hdc file send “要推送的文件” “设备目录”
注意有时候推送了文件进了设备但是对文件操作报权限错误需要对文件进行授权。
四.总结
对沙箱文件的操作总体来说较为简单但要注意和用户文件的区分。
常用的对文件的操作场景有1.文件上传下载2.文件的遍历与读取3.日志的保存。
还有许多文件操作的细节和扩展希望能和大家一起学习共同进步。
为了能让大家更好的学习鸿蒙 (Harmony OS) 开发技术这边特意整理了《鸿蒙 (Harmony OS)开发学习手册》共计890页希望对大家有所帮助https://qr21.cn/FV7h05
《鸿蒙 (Harmony OS)开发学习手册》
入门必看https://qr21.cn/FV7h05
应用开发导读(ArkTS)…… HarmonyOS 概念https://qr21.cn/FV7h05
系统定义技术架构技术特性系统安全 如何快速入门https://qr21.cn/FV7h05
基本概念构建第一个ArkTS应用构建第一个JS应用…… 开发基础知识https://qr21.cn/FV7h05
应用基础知识配置文件应用数据管理应用安全管理应用隐私保护三方应用调用管控机制资源分类与访问学习ArkTS语言…… 基于ArkTS 开发https://qr21.cn/FV7h05
1.Ability开发 2.UI开发 3.公共事件与通知 4.窗口管理 5.媒体 6.安全 7.网络与链接 8.电话服务 9.数据管理 10.后台任务(Background Task)管理 11.设备管理 12.设备使用信息统计 13.DFX 14.国际化开发 15.折叠屏系列 16.……