
回复
作者:刘庆业
本系列记录团队openHarmony 的学习和实践中,所踩过的坑以及填坑的记录,可能社区已有分享相关的文档,但也不妨大家一起探讨。如有不妥,也敬请大神指教。
文件管理的功能点较多,团队将持续学习试验,并总结相应的知识点与大家分享。官方接口API:
https://developer.harmonyos.com/cn/docs/documentation/doc-references/js-apis-fileio-0000001168366687
https://gitee.com/openharmony/interface_sdk-js/blob/master/api/@ohos.fileio.d.ts
文件打开方法,有3个参数path、flags、mode。其中flags表示 打开文件 ,默认以只读方式打开 ;mode,若创建文件 , 则指定文件的权限,默认给定0o666 。
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
flags | number | 否 | 打开文件的选项,必须指定如下选项中的一个,默认以只读方式打开:0o0:只读打开。<br/>0o1:只写打开。<br/>0o2:读写打开。<br/>同时,也可给定如下选项,以按位或的方式追加,默认不给定任何额外选项:<br/>0o100:若文件不存在,则创建文件。使用该选项时必须指定第三个参数 mode。<br/>0o200:如果追加了0o100选项,且文件已经存在,则出错。<br/>0o1000:如果文件存在且以只写或读写的方式打开文件,则将其长度裁剪为零。<br/>0o2000:以追加方式打开,后续写将追加到文件末尾。<br/>0o4000:如果path指向FIFO、块特殊文件或字符特殊文件,则本次打开及后续 IO 进行非阻塞操作。<br/>0o200000:如果path指向目录,则出错。<br/>0o400000:如果path指向符号链接,则出错。<br/>0o4010000:以同步IO的方式打开文件。 |
mode | number | 否 | 若创建文件,则指定文件的权限,可给定如下权限,以按位或的方式追加权限,默认给定0o666。<br/>0o666:所有者具有读、写权限,所有用户组具有读、写权限,其余用户具有读、写权限。<br/>0o700:所有者具有读、写及可执行权限。<br/>0o400:所有者具有读权限。<br/>0o200:所有者具有写权限。<br/>0o100:所有者具有可执行权限。<br/>0o070:所有用户组具有读、写及可执行权限。<br/>0o040:所有用户组具有读权限。<br/>0o020:所有用户组具有写权限。<br/>0o010:所有用户组具有可执行权限。<br/>0o007:其余用户具有读、写及可执行权限。<br/>0o004:其余用户具有读权限。<br/>0o002:其余用户具有写权限。<br/>0o001:其余用户具有可执行权限。 |
文件写入,官方提供了多种方式可以实现,比如:
文件写入前,如果写入文件的路径不存在,则直接写入会报错,所以需要判断路径是否存在后,需要根据业务情况进行处理。设想的处理方式有2种,我们则采用第一种方案:
1)根据原定文件路径,创建相关文件夹,完成创建路径所需的文件夹后,创建文件并写入;
2)提示用户,写入路径不存在;
创建文件夹的接口,下面会由讲述。
文件读取,也有相应的接口,例如:
读取写入之前,都需要判断下文件路径是否存在,那么可用下面这个接口判断。
创建文件夹的方法如下,如果需要设置文件夹的访问权限,可以设置mode参数值:
本次分享的内容仅是文件管理模块学习研究的开端,希望与大家共同成长。
入门到精通、技巧到案例,系统化分享HarmonyOS开发技术,欢迎投稿和订阅,让我们一起携手前行共建鸿蒙生态。