鸿蒙开发文件管理:【@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

相关文章

Knife4j+Axios+Redis前后端分离架构下的 API 管理与会话方案(最新推荐)

《Knife4j+Axios+Redis前后端分离架构下的API管理与会话方案(最新推荐)》本文主要介绍了Swagger与Knife4j的配置要点、前后端对接方法以及分布式Session实现原理,... 目录一、Swagger 与 Knife4j 的深度理解及配置要点Knife4j 配置关键要点1.Spri

MySQL中的InnoDB单表访问过程

《MySQL中的InnoDB单表访问过程》:本文主要介绍MySQL中的InnoDB单表访问过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、环境3、访问类型【1】const【2】ref【3】ref_or_null【4】range【5】index【6】

SpringBoot开发中十大常见陷阱深度解析与避坑指南

《SpringBoot开发中十大常见陷阱深度解析与避坑指南》在SpringBoot的开发过程中,即使是经验丰富的开发者也难免会遇到各种棘手的问题,本文将针对SpringBoot开发中十大常见的“坑... 目录引言一、配置总出错?是不是同时用了.properties和.yml?二、换个位置配置就失效?搞清楚加

前端如何通过nginx访问本地端口

《前端如何通过nginx访问本地端口》:本文主要介绍前端如何通过nginx访问本地端口的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、nginx安装1、下载(1)下载地址(2)系统选择(3)版本选择2、安装部署(1)解压(2)配置文件修改(3)启动(4)

Python中对FFmpeg封装开发库FFmpy详解

《Python中对FFmpeg封装开发库FFmpy详解》:本文主要介绍Python中对FFmpeg封装开发库FFmpy,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、FFmpy简介与安装1.1 FFmpy概述1.2 安装方法二、FFmpy核心类与方法2.1 FF

基于Python开发Windows屏幕控制工具

《基于Python开发Windows屏幕控制工具》在数字化办公时代,屏幕管理已成为提升工作效率和保护眼睛健康的重要环节,本文将分享一个基于Python和PySide6开发的Windows屏幕控制工具,... 目录概述功能亮点界面展示实现步骤详解1. 环境准备2. 亮度控制模块3. 息屏功能实现4. 息屏时间

Python实例题之pygame开发打飞机游戏实例代码

《Python实例题之pygame开发打飞机游戏实例代码》对于python的学习者,能够写出一个飞机大战的程序代码,是不是感觉到非常的开心,:本文主要介绍Python实例题之pygame开发打飞机... 目录题目pygame-aircraft-game使用 Pygame 开发的打飞机游戏脚本代码解释初始化部

使用Python开发一个现代化屏幕取色器

《使用Python开发一个现代化屏幕取色器》在UI设计、网页开发等场景中,颜色拾取是高频需求,:本文主要介绍如何使用Python开发一个现代化屏幕取色器,有需要的小伙伴可以参考一下... 目录一、项目概述二、核心功能解析2.1 实时颜色追踪2.2 智能颜色显示三、效果展示四、实现步骤详解4.1 环境配置4.

使用jenv工具管理多个JDK版本的方法步骤

《使用jenv工具管理多个JDK版本的方法步骤》jenv是一个开源的Java环境管理工具,旨在帮助开发者在同一台机器上轻松管理和切换多个Java版本,:本文主要介绍使用jenv工具管理多个JD... 目录一、jenv到底是干啥的?二、jenv的核心功能(一)管理多个Java版本(二)支持插件扩展(三)环境隔

华为鸿蒙HarmonyOS 5.1官宣7月开启升级! 首批支持名单公布

《华为鸿蒙HarmonyOS5.1官宣7月开启升级!首批支持名单公布》在刚刚结束的华为Pura80系列及全场景新品发布会上,除了众多新品的发布,还有一个消息也点燃了所有鸿蒙用户的期待,那就是Ha... 在今日的华为 Pura 80 系列及全场景新品发布会上,华为宣布鸿蒙 HarmonyOS 5.1 将于 7