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

相关文章

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

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

使用docker搭建嵌入式Linux开发环境

《使用docker搭建嵌入式Linux开发环境》本文主要介绍了使用docker搭建嵌入式Linux开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1、前言2、安装docker3、编写容器管理脚本4、创建容器1、前言在日常开发全志、rk等不同

Redis实现高效内存管理的示例代码

《Redis实现高效内存管理的示例代码》Redis内存管理是其核心功能之一,为了高效地利用内存,Redis采用了多种技术和策略,如优化的数据结构、内存分配策略、内存回收、数据压缩等,下面就来详细的介绍... 目录1. 内存分配策略jemalloc 的使用2. 数据压缩和编码ziplist示例代码3. 优化的

SpringBoot集成XXL-JOB实现任务管理全流程

《SpringBoot集成XXL-JOB实现任务管理全流程》XXL-JOB是一款轻量级分布式任务调度平台,功能丰富、界面简洁、易于扩展,本文介绍如何通过SpringBoot项目,使用RestTempl... 目录一、前言二、项目结构简述三、Maven 依赖四、Controller 代码详解五、Service

Python实战之SEO优化自动化工具开发指南

《Python实战之SEO优化自动化工具开发指南》在数字化营销时代,搜索引擎优化(SEO)已成为网站获取流量的重要手段,本文将带您使用Python开发一套完整的SEO自动化工具,需要的可以了解下... 目录前言项目概述技术栈选择核心模块实现1. 关键词研究模块2. 网站技术seo检测模块3. 内容优化分析模

深入解析C++ 中std::map内存管理

《深入解析C++中std::map内存管理》文章详解C++std::map内存管理,指出clear()仅删除元素可能不释放底层内存,建议用swap()与空map交换以彻底释放,针对指针类型需手动de... 目录1️、基本清空std::map2️、使用 swap 彻底释放内存3️、map 中存储指针类型的对象

基于Java开发一个极简版敏感词检测工具

《基于Java开发一个极简版敏感词检测工具》这篇文章主要为大家详细介绍了如何基于Java开发一个极简版敏感词检测工具,文中的示例代码简洁易懂,感兴趣的小伙伴可以跟随小编一起学习一下... 目录你是否还在为敏感词检测头疼一、极简版Java敏感词检测工具的3大核心优势1.1 优势1:DFA算法驱动,效率提升10

Linux系统管理与进程任务管理方式

《Linux系统管理与进程任务管理方式》本文系统讲解Linux管理核心技能,涵盖引导流程、服务控制(Systemd与GRUB2)、进程管理(前台/后台运行、工具使用)、计划任务(at/cron)及常用... 目录引言一、linux系统引导过程与服务控制1.1 系统引导的五个关键阶段1.2 GRUB2的进化优

Spring Security 前后端分离场景下的会话并发管理

《SpringSecurity前后端分离场景下的会话并发管理》本文介绍了在前后端分离架构下实现SpringSecurity会话并发管理的问题,传统Web开发中只需简单配置sessionManage... 目录背景分析传统 web 开发中的 sessionManagement 入口ConcurrentSess

Python开发简易网络服务器的示例详解(新手入门)

《Python开发简易网络服务器的示例详解(新手入门)》网络服务器是互联网基础设施的核心组件,它本质上是一个持续运行的程序,负责监听特定端口,本文将使用Python开发一个简单的网络服务器,感兴趣的小... 目录网络服务器基础概念python内置服务器模块1. HTTP服务器模块2. Socket服务器模块