鸿蒙开发:hvigor插件中的文件操作

简介: FileUtil工具类提供的方法都是十分的简单,在typescript项目开发的时候,可能会有报错,不过不要担心,集成到DevEco Studio中是可以正常执行的,不过在写的时候,大家可以在DevEco Studio中先验证,无问题后再复制到typescript项目中打插件包。

前言


本文API>=13,基于DevEco Studio 5.1.0 Release,版本号5.1.0.828


之前在《hvigor插件实现组件化运行》一文中,我们生成了一个文件,主要用于模块运行包和共享包之间切换的控制,那么这个文件是如何创建的呢?当然了,还有很多的应用场景,比如,在构建前,针对代码规范进行检查,如果有不符合规范的地方,输出到一个错误文件中,或者,需要针对项目中的代码进行动态修改等等场景,hvigor插件开发中如何去实现呢?这就是这篇文章要概述的内容,hvigor插件中的文件操作。


文件操作,有两种方式,一种是使用node中的fs模块,它内部提供了大量的方法来读取、写入、修改、删除文件和目录,以及获取文件信息等操作,使用它,便可以实现我们对文件的操作;除此之外,官方也给我们提供了文件操作的Api,FileUtil工具类。


当然了,目前的FileUtil工具类,只支持一些基本的文件操作,虽说没有fs模块完善,但也基本上能够满足我们对文件操作的需求。


使用FileUtil之前,我们先导入模块,如下代码所示:


import { FileUtil } from '@ohos/hvigor';


主要方法概述

1、判断文件路径是否存在


使用exist方法来判断一个文件地址是否存在,可以是一个文件夹,也可以是一个文件,如下代码所示。


很多的场景之下,我们都需要用到这个方法,比如创建文件之前需要判断,复制文件之前也需要进行判断。


const filePath = node.getNodePath() + "/test.json";
      if (FileUtil.exist(filePath)) {
        console.log("File exists");
      } else {
        console.log("File doesn't exist");
      }


2、判断是否是目录


const filePath = node.getNodePath() + "/test.json";
      if (FileUtil.isDictionary(filePath)) {
        console.log("It is a directory");
      } else {
        console.log("It is not a directory");
      }


3、判断是否是文件


const filePath = node.getNodePath() + "/test.json";
      if (FileUtil.isFile(filePath)) {
        console.log("It is a directory");
      } else {
        console.log("It is not a directory");
      }


4、确保目录或文件存在


有很多场景下,我们的需求是,必须保证某一个目录或者某一个文件必须存在,如果不存在就去创建,按照以往的方式,我们会先判断此目录或文件是否存在,不存在就去创建,一般需要两步来实现,但是,在FileUtil中,我们一步就可以搞定。


使用ensureDirSync方法,来确保目录存在,不存在就创建;使用ensureFileSync方法,来确保文件存在,不存在就创建。


使用方式很简单,如下简单举例,文件不存在,构建后,就会直接创建一个。



5、读取文件


读取文件,FileUtil提供了,三种读取方式,第一种是读取Json5文件readJson5()方法,第二种是同步读取文件readFileSync()方法,第三种是异步读取文件readFile()方法。


json5文件的读取,会给我们直接返回json对象,我们直接可以进行对象操作,非常的方便。


const jsonContent = FileUtil.readJson5(filePath);


同步读取文件比较简单,我们直接传入一个文件地址即可。


const content = FileUtil.readFileSync(filePath);


异步读取,会返回一个Promise<Buffer>,我们可以使用then来异步获取,当然,也可以使用async和await的方式。


const content = await FileUtil.readFile(filePath);


6、写入文件


写入文件,目前官方也是给出了两种方式,一种是同步,一种返回Promise<void>的异步形式。


同步写入:


FileUtil.writeFileSync(filePath, "content")


异步写入:


FileUtil.writeFile(filePath, "content");


无论同步还是异步,在文件写入之前,请一定要确保文件存在,否则会报错误,可以在写入之前执行FileUtil.ensureFileSync(filePath)函数,确保文件存在。


7、复制文件


复制文件,目前官方也提供了两种方式,分别是同步复制和异步复制。


同步复制:


FileUtil.copyFileSync(filePath, copyFilePath);


异步复制:


FileUtil.copyFile(filePath, copyFilePath);


相关总结


FileUtil工具类提供的方法都是十分的简单,在typescript项目开发的时候,可能会有报错,不过不要担心,集成到DevEco Studio中是可以正常执行的,不过在写的时候,大家可以在DevEco Studio中先验证,无问题后再复制到typescript项目中打插件包。


本文标签:鸿蒙开发工具/DevEco Studio

相关文章
|
2月前
|
移动开发 前端开发 Android开发
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
314 12
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
|
2月前
|
移动开发 JavaScript 应用服务中间件
【06】优化完善落地页样式内容-精度优化-vue加vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【06】优化完善落地页样式内容-精度优化-vue加vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
283 5
【06】优化完善落地页样式内容-精度优化-vue加vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
|
6月前
|
容器
HarmonyOS NEXT仓颉开发语言实战案例:外卖App
仓颉语言实战分享,教你如何用仓颉开发外卖App界面。内容包括页面布局、导航栏自定义、搜索框实现、列表模块构建等,附完整代码示例。轻松掌握Scroll、List等组件使用技巧,提升HarmonyOS应用开发能力。
|
5月前
|
安全 JavaScript API
鸿蒙开发核心要素
鸿蒙开发核心要素
|
2月前
|
移动开发 Rust JavaScript
【01】首页建立-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【01】首页建立-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
657 4
【01】首页建立-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
|
6月前
|
存储 IDE 定位技术
【HarmonyOS 5】鸿蒙组件&模板服务详解 - 助力高效开发的利器
在移动应用开发领域,效率与质量始终是开发者追求的核心目标。鸿蒙系统作为新兴的操作系统,为开发者提供了丰富且强大的开发资源,其中鸿蒙组件&模板服务更是成为开发者快速构建高质量应用的得力助手。
238 0
HarmonyOS NEXT仓颉开发语言实战案例:电影App
周末好!本文分享使用仓颉语言重构ArkTS实现的电影App案例,对比两者在UI布局、组件写法及语法差异。内容包括页面结构、列表分组、分类切换与电影展示等。通过代码演示仓颉在HarmonyOS开发中的应用。##仓颉##ArkTS##HarmonyOS开发
|
6月前
|
容器
HarmonyOS NEXT仓颉开发语言实战案例:健身App
本期分享一个健身App首页的布局实现,顶部采用Stack容器实现重叠背景与偏移效果,列表部分使用List结合Scroll实现可滚动内容。代码结构清晰,适合学习HarmonyOS布局技巧。
HarmonyOS NEXT仓颉开发语言实战案例:小而美的旅行App
本文分享了一个旅行App首页的设计与实现,使用List容器搭配Row、Column布局完成个人信息、功能列表及推荐模块的排版,详细展示了HarmonyOS下的界面构建技巧。
|
2月前
|
移动开发 Android开发
【03】建立隐私关于等相关页面和内容-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【03】建立隐私关于等相关页面和内容-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
177 0

热门文章

最新文章