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

相关文章

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

Hadoop企业开发案例调优场景

需求 (1)需求:从1G数据中,统计每个单词出现次数。服务器3台,每台配置4G内存,4核CPU,4线程。 (2)需求分析: 1G / 128m = 8个MapTask;1个ReduceTask;1个mrAppMaster 平均每个节点运行10个 / 3台 ≈ 3个任务(4    3    3) HDFS参数调优 (1)修改:hadoop-env.sh export HDFS_NAMENOD

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设

OpenHarmony鸿蒙开发( Beta5.0)无感配网详解

1、简介 无感配网是指在设备联网过程中无需输入热点相关账号信息,即可快速实现设备配网,是一种兼顾高效性、可靠性和安全性的配网方式。 2、配网原理 2.1 通信原理 手机和智能设备之间的信息传递,利用特有的NAN协议实现。利用手机和智能设备之间的WiFi 感知订阅、发布能力,实现了数字管家应用和设备之间的发现。在完成设备间的认证和响应后,即可发送相关配网数据。同时还支持与常规Sof

poj1330(LCA最近公共祖先)

题意:求最近公共祖先 思路:之前学习了树链剖分,然后我就用树链剖分的一小部分知识就可以解这个题目了,记录每个结点的fa和depth。然后查找时,每次将depth大的结点往上走直到x = y。 代码如下: #include<iostream>#include<algorithm>#include<stdio.h>#include<math.h>#include<cstring>

活用c4d官方开发文档查询代码

当你问AI助手比如豆包,如何用python禁止掉xpresso标签时候,它会提示到 这时候要用到两个东西。https://developers.maxon.net/论坛搜索和开发文档 比如这里我就在官方找到正确的id描述 然后我就把参数标签换过来

安卓链接正常显示,ios#符被转义%23导致链接访问404

原因分析: url中含有特殊字符 中文未编码 都有可能导致URL转换失败,所以需要对url编码处理  如下: guard let allowUrl = webUrl.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) else {return} 后面发现当url中有#号时,会被误伤转义为%23,导致链接无法访问

软考系统规划与管理师考试证书含金量高吗?

2024年软考系统规划与管理师考试报名时间节点: 报名时间:2024年上半年软考将于3月中旬陆续开始报名 考试时间:上半年5月25日到28日,下半年11月9日到12日 分数线:所有科目成绩均须达到45分以上(包括45分)方可通过考试 成绩查询:可在“中国计算机技术职业资格网”上查询软考成绩 出成绩时间:预计在11月左右 证书领取时间:一般在考试成绩公布后3~4个月,各地领取时间有所不同

安全管理体系化的智慧油站开源了。

AI视频监控平台简介 AI视频监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒,省去繁琐重复的适配流程,实现芯片、算法、应用的全流程组合,从而大大减少企业级应用约95%的开发成本。用户只需在界面上进行简单的操作,就可以实现全视频的接入及布控。摄像头管理模块用于多种终端设备、智能设备的接入及管理。平台支持包括摄像头等终端感知设备接入,为整个平台提