更多内容请访问:与华为官方共建的鸿蒙技术社区https://ost.51cto.com前言文件管理在是一个很重要的功能在我们日常使用手机的过程中。我们可以通过文件管理相关的API,实现指定文件的删除、复制、移动、压缩、解压等操作。文件管理API从6版本开始支持,目前华为公开文件访问的API还没有开放,所以只能对应用私有目录下的文件进行权限操作。作为参考,HarmonyOS文件管理JSAPI。OpenHarmonyAPI。获取当前应用程序私有目录。使用该功能模块操作文件/目录前,需要获取其绝对路径。获取方法及接口使用请参考:AbilityContext。在使用AbilityContext的功能之前,需要通过getContext()获取Context对象。在使用AbilityContext的功能之前,需要通过getContext()获取Context对象。示例:从“@ohos.ability.featureAbility”导入ability_featureabilityvarcontext=ability_featureability.getContext();除了通过AbilityContext获取应用程序的内部存储目录外,还可以使用特定的方案(只支持内部)访问一些预定义的文件访问目录,详见存储目录定义。不同设备对应的实际位置不同。访问不在以下目录的文件将被拒绝(禁止使用../等访问父目录)。通过实际代码运行,发现context.getFilesDir()获取到的目录/data/data/应用包名/files与internal://app/的目录是一样的,在后面的示例代码中有所体现.创建文件目录官方API文档提供了多种创建文件目录的方法。这里只演示其中一种方法,其他方法可以自行验证。mkdir(path:string,mode?:number):承诺。使用异步方法创建目录,并以promise的形式返回结果。这里我们通过context.getFilesDir()获取到当前应用的私有目录,并在该文件夹下创建4个文件夹。获取指定路径下的所有文件要获取指定目录下的所有文件,需要用到system.file模块。从“@system.file”导入文件;Copy虽然官方文档说从APIVersion6开始不再维护这个接口,推荐使用新接口'@ohos.fileio'。但是我并没有在fileio模块中找到相关的接口。不知道是文档没有更新还是怎么回事,只能继续使用system.file模块。期待华为稍后更新文档。system.file模块接口文档参考获取指定路径下所有文件列表。示例:这里我们可以看到,通过获取internal://app/目录下的所有文件,在/data/data/应用包名/files下可以看到我们上面创建的文件夹。获取文件详情通过异步方式获取文件信息,并以回调的形式返回结果。档案。统计()。参数:示例:fileio.stat(path,function(err,stat){});删除目录在异步方法中删除目录,并以回调的形式返回结果。fileio.rmdir(测试版)7+。参数:示例:fileio.rmdir(path,function(err){});删除文件以异步方式删除文件,并以回调的形式返回结果。档案。取消链接()。参数:示例:awaitfileio.unlink(path,function(err){if(!err){//dosomething}});文件复制和移动操作使用异步方法复制文件,并使用回调返回结果。fileio.copyFile()参数:示例:awaitfileio.copyFile(src,dest,function(err){});总结:以上只是一些接口实践,其他接口可以参考华为官方API参考和openHarmony源码进行实践,建议大家随时随地关注官方文档的更新,因为虽然有部分API介绍在文档中,实际引用时发现相关功能并没有实现。所以,我们要时刻关注官方文档的更新。更多信息请访问:与华为官方共建的鸿蒙技术社区https://ost.51cto.com
