鸿蒙开发文件管理:【@ohos.fileManager (公共文件访问与管理)】

2024-06-12 16:12

本文主要是介绍鸿蒙开发文件管理:【@ohos.fileManager (公共文件访问与管理)】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

公共文件访问与管理

该模块提供公共文件访问和管理的服务接口,向下对接底层文件管理服务,如媒体库、外卡管理;向上对应用程序提供公共文件查询、创建的能力。

icon-note.gif 说明:

  • 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
  • 本模块接口为系统接口,三方应用不支持调用,当前只支持filepicker调用。

导入模块

import filemanager from '@ohos.fileManager';

filemanager.getRoot

getRoot(options? : {dev? : DevInfo}) : Promise<FileInfo[]>

以异步方法获取第一层相册,目录信息。使用promise形式返回结果。

系统能力:SystemCapability.FileManagement.UserFileService

参数:

参数名类型必填说明
optionsObject支持如下选项: - dev,[DevInfo]类型,不填默认dev = {name: “local”}, 当前仅支持设备’local’

返回值:

类型说明
Promise<[FileInfo][]>第一层目录相册信息

示例:

filemanager.getRoot().then((fileInfo) => {if(Array.isArray(fileInfo)) {for (var i = 0; i < fileInfo.length; i++) {console.log("file:"+JSON.stringify(fileInfo));}}
}).catch((err) => {console.log(err)
});

filemanager.getRoot

getRoot(options? : {dev? : DevInfo}, callback : AsyncCallback<FileInfo[]>) : void

以异步方法获取第一层相册,目录信息。使用callback形式返回结果。

系统能力:SystemCapability.FileManagement.UserFileService

参数:

参数名类型必填说明
optionsObject支持如下选项: - dev,[DevInfo]类型,不填默认dev = {name: “local”}, 当前仅支持设备’local’
callbackAsyncCallback<[FileInfo][]>异步获取文件的信息之后的回调

示例:

let options = {"dev":{"name":"local"}
};
filemanager.getRoot(options, (err, fileInfo)=>{if(Array.isArray(fileInfo)) {for (var i = 0; i < fileInfo.length; i++) {console.log("file:"+JSON.stringify(fileInfo));}} 
});

filemanager.listFile

listFile(path : string, type : string, options? : {dev? : DevInfo, offset? : number, count? : number}) : Promise<FileInfo[]>

以异步方法获取第二层相册,文件信息。使用promise形式返回结果。

系统能力:SystemCapability.FileManagement.UserFileService

参数:

参数名类型必填说明
pathstring待查询目录uri
typestring待查询文件类型, 支持以下类型 “file”, “image”, “audio”, “video”
optionsObject支持如下选项: - dev,[DevInfo]类型,不填默认dev = {name: “local”}, 当前仅支持设备’local’。 - offset,number类型,待查询文件偏移个数。 - count,number类型,待查询文件个数。

返回值:

类型说明
Promise<FileInfo[]>文件信息

异常:

错误名称错误类型错误码说明
对应的目录、相册不存在No such file or directory2uri对应的目录、相册不存在
获取FMS服务失败No such process3获取FMS服务失败
path对应uri不是相册、目录Not a directory20path对应uri不是相册、目录

示例:

// 获取目录下所有文件
// 通过listFile、getRoot获取的文件uri
let media_path = ""
filemanager.listFile(media_path, "file")
.then((fileInfo) => {if(Array.isArray(fileInfo)) {for (var i = 0; i < fileInfo.length; i++) {console.log("file:"+JSON.stringify(fileInfo));}}
}).catch((err) => {console.log("failed to get file"+err);
});

filemanager.listFile

listFile(path : string, type : string, options? : {dev? : DevInfo, offset? : number, count? : number}, callback : AsyncCallback<FileInfo[]>) : void

以异步方法获取第二层相册,文件信息。使用callback形式返回结果。

系统能力:SystemCapability.FileManagement.UserFileService

参数:

参数名类型必填说明
pathstring待查询目录uri
typestring待查询文件类型, 支持以下类型 “file”, “image”, “audio”, “video”
optionsObject支持如下选项: - dev,[DevInfo]类型,不填默认dev = {name: “local”}, 当前仅支持设备’local’。 - offset,number类型,待查询文件偏移个数。 - count,number类型,待查询文件个数。
callbackAsyncCallback<[FileInfo][]>异步获取文件的信息之后的回调

异常:

错误名称错误类型错误码说明
对应的目录、相册不存在No such file or directory2uri对应的目录、相册不存在
获取FMS服务失败No such process3获取FMS服务失败
path对应uri不是相册、目录Not a directory20path对应uri不是相册、目录

示例:

// 通过listFile、getRoot获取的文件path
let fileInfos = filemanager.getRoot(); 
let media_path  = "";
for (let i = 0; i < fileInfos.length; i++) {if (fileInfos[i].name == "image_album") {media_path = fileInfos[i].path;} else if (fileInfos[i].name == "audio_album") {media_path = fileInfos[i].path;} else if (fileInfos[i].name == "video_album") {media_path = fileInfos[i].path;} else if (fileInfos[i].name == "file_folder") {media_path = fileInfos[i].path;}
}filemanager.listFile(media_path, "file")
.then((fileInfo) => {if(Array.isArray(fileInfo)) {for (var i = 0; i < fileInfo.length; i++) {console.log("file:"+JSON.stringify(fileInfo));}}
}).catch((err) => {console.log("failed to get file"+err);
});

filemanager.createFile

createFile(path : string, filename : string, options? : {dev? : DevInfo}) : Promise

以异步方法创建文件到指定路径,返回文件uri。使用promise形式返回结果。

系统能力:SystemCapability.FileManagement.UserFileService

参数:

参数名类型必填说明
filenamestring待创建的文件名
pathstring待保存目的相册uri
optionsObject支持如下选项: - dev,[DevInfo]类型,不填默认dev = {name: “local”}, 当前仅支持设备’local’

返回值:

类型说明
Promise文件uri

异常:

错误名称错误类型错误码说明
创建文件不允许Operation not permitted1已有重名文件
对应的目录、相册不存在No such file or directory2uri对应的目录、相册不存在
获取FMS服务失败No such process3获取FMS服务失败
path对应uri不是相册、目录Not a directory20path对应uri不是相册、目录

示例:

// 创建文件,返回文件uri
let media_path = "" // 通过listFile、getRoot获取的文件uri
let name = "xxx.jpg" // 待保存文件的后缀
filemanager.createFile(media_path, name).then((uri) => {// 返回uri给应用console.log("file uri:"+uri);
}).catch((err) => {console.log(err);
});

filemanager.createFile

createFile(path : string, filename: string, options? : {dev? : DevInfo}, callback : AsyncCallback) : void

以异步方法创建文件到指定路径,返回文件uri。使用callback形式返回结果。

系统能力:SystemCapability.FileManagement.UserFileService

参数:

参数名类型必填说明
filenamestring待创建的文件名
pathstring待保存目的相册uri
optionsObject支持如下选项: - dev,[DevInfo]类型,不填默认dev = {name: “local”}, 当前仅支持设备’local’
callbackAsyncCallback<[FileInfo][]>异步获取文件的信息之后的回调

异常:

错误名称错误类型错误码说明
创建文件不允许Operation not permitted1已有重名文件
对应的目录、相册不存在No such file or directory2uri对应的目录、相册不存在
获取FMS服务失败No such process3获取FMS服务失败
path对应uri不是相册、目录Not a directory20path对应uri不是相册、目录

示例:

// 创建文件,返回文件uri
// 通过listFile、getRoot获取的文件uri
let media_path = ""
// 待保存文件的后缀
let name = "xxx.jpg"
let options = {"dev":{"name":"local"}
};
filemanager.createFile(media_path, name, options, function(err, uri) {// 返回uri给应用console.log("file uri:"+uri);
});

FileInfo

文件信息类型,通过getRoot, listFile等接口返回的类型。

系统能力:以下各项对应的系统能力均为SystemCapability.FileManagement.UserFileService。

属性

参数名类型可读可写说明
namestring文件名称
pathstring文件Uri
typestring文件类型
sizenumber文件大小
addedTimenumber媒体插入时间
modifiedTimenumber媒体修改时间

DevInfo

设备类型,配置接口访问的设备类型。

系统能力:以下各项对应的系统能力均为SystemCapability.FileManagement.UserFileService。

属性

参数名类型可读可写说明
namestring设备名称

这篇关于鸿蒙开发文件管理:【@ohos.fileManager (公共文件访问与管理)】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1054703

相关文章

一文详解Python如何开发游戏

《一文详解Python如何开发游戏》Python是一种非常流行的编程语言,也可以用来开发游戏模组,:本文主要介绍Python如何开发游戏的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录一、python简介二、Python 开发 2D 游戏的优劣势优势缺点三、Python 开发 3D

Linux创建服务使用systemctl管理详解

《Linux创建服务使用systemctl管理详解》文章指导在Linux中创建systemd服务,设置文件权限为所有者读写、其他只读,重新加载配置,启动服务并检查状态,确保服务正常运行,关键步骤包括权... 目录创建服务 /usr/lib/systemd/system/设置服务文件权限:所有者读写js,其他

基于Python开发Windows自动更新控制工具

《基于Python开发Windows自动更新控制工具》在当今数字化时代,操作系统更新已成为计算机维护的重要组成部分,本文介绍一款基于Python和PyQt5的Windows自动更新控制工具,有需要的可... 目录设计原理与技术实现系统架构概述数学建模工具界面完整代码实现技术深度分析多层级控制理论服务层控制注

nodejs打包作为公共包使用的完整流程

《nodejs打包作为公共包使用的完整流程》在Node.js项目中,打包和部署是发布应用的关键步骤,:本文主要介绍nodejs打包作为公共包使用的相关资料,文中通过代码介绍的非常详细,需要的朋友可... 目录前言一、前置准备二、创建与编码三、一键构建四、本地“白嫖”测试(可选)五、发布公共包六、常见踩坑提醒

在Node.js中使用.env文件管理环境变量的全过程

《在Node.js中使用.env文件管理环境变量的全过程》Node.js应用程序通常依赖于环境变量来管理敏感信息或配置设置,.env文件已经成为一种流行的本地管理这些变量的方法,本文将探讨.env文件... 目录引言为什么使php用 .env 文件 ?如何在 Node.js 中使用 .env 文件最佳实践引

Java中的分布式系统开发基于 Zookeeper 与 Dubbo 的应用案例解析

《Java中的分布式系统开发基于Zookeeper与Dubbo的应用案例解析》本文将通过实际案例,带你走进基于Zookeeper与Dubbo的分布式系统开发,本文通过实例代码给大家介绍的非常详... 目录Java 中的分布式系统开发基于 Zookeeper 与 Dubbo 的应用案例一、分布式系统中的挑战二

python库pydantic数据验证和设置管理库的用途

《python库pydantic数据验证和设置管理库的用途》pydantic是一个用于数据验证和设置管理的Python库,它主要利用Python类型注解来定义数据模型的结构和验证规则,本文给大家介绍p... 目录主要特点和用途:Field数值验证参数总结pydantic 是一个让你能够 confidentl

基于Go语言开发一个 IP 归属地查询接口工具

《基于Go语言开发一个IP归属地查询接口工具》在日常开发中,IP地址归属地查询是一个常见需求,本文将带大家使用Go语言快速开发一个IP归属地查询接口服务,有需要的小伙伴可以了解下... 目录功能目标技术栈项目结构核心代码(main.go)使用方法扩展功能总结在日常开发中,IP 地址归属地查询是一个常见需求:

基于 Cursor 开发 Spring Boot 项目详细攻略

《基于Cursor开发SpringBoot项目详细攻略》Cursor是集成GPT4、Claude3.5等LLM的VSCode类AI编程工具,支持SpringBoot项目开发全流程,涵盖环境配... 目录cursor是什么?基于 Cursor 开发 Spring Boot 项目完整指南1. 环境准备2. 创建

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版