前言
在鸿蒙开发中,避免不了对沙盒中的文件进行操作.最近遇到的一个问题是,将一个目录下的所有文件和文件夹全部删除,但是系统提供的fs对象只能删除一个空目录,对于非空目录进行处理,就会比较棘手.
解决方案
为了解决此类痛点,我们参考了Python中的pathlib的核心思想,在arkts中,实现了一套更加方便的处理文件管理的工具类pathlib
.
上述问题在pathlib的加持下,只需要两步:
1 | import { Path } from 'pathlib' |
Path中,自动处理了目录非空的情况下,先递归删除所有子文件夹和子文件的操作.
在pathlib中,我们处理了这些文件管理的细枝末节,让您在开发中更加关注与业务逻辑,事半功倍!
pathlib简介
pathlib
提供一套简洁的,面向对象的api调用来操作文件.
仓库地址: pathlib
创建方式
1 | // 从字符串创建 |
常用对象和方法:
通用方法
exists() 判断路径对象是否存在
文件夹操作
subPaths() 获取所有的子路径对象
rmdir() 删除文件夹递归删除所有子文件和子文件夹
文件操作
touch() 创建文件
unlink() 删除文件
rename() 重命名文件
静态方法
files() 获取沙箱files目录
temp() 获取沙箱temp目录
cache() 获取沙箱cache目录
pathlib的优势:
面向对象的API,更符合使用习惯
自动处理不同系统的路径差异
提供丰富的路径操作方法
代码更简洁易读
建议:
新项目优先使用pathlib
路径处理统一使用Path对象
注意正确处理异常情况
考虑文件编码问题