0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

jf_46214456 来源:jf_46214456 作者:jf_46214456 2024-06-12 17:00 次阅读

公共文件访问与管理

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

icon-note.gif说明:
开发前请熟悉鸿蒙开发指导文档 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]

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

导入模块

import filemanager from '@ohos.fileManager';

filemanager.getRoot

getRoot(options? : {dev? : DevInfo}) : Promise

以异步方法获取第一层相册,目录信息。使用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) : 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

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

系统能力 :SystemCapability.FileManagement.UserFileService

参数:

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

返回值:

类型说明
Promise文件信息

异常:

错误名称错误类型错误码说明
对应的目录、相册不存在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) : 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媒体修改时间HarmonyOSOpenHarmony鸿蒙文档籽料:mau123789是v直接拿

搜狗高速浏览器截图20240326151450.png

DevInfo

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

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

属性

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

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 鸿蒙
    +关注

    关注

    57

    文章

    2351

    浏览量

    42849
收藏 人收藏

    评论

    相关推荐

    esp8266那个模块能发文件吗?

    esp8266那个模块能发文件吗怎么发高手指点一下
    发表于 07-03 03:34

    esp8266收发文件中的接收固件该怎么处理呢?

    我想用esp8266 来做stm32的固件升级 那这样的话就需要接收esp8266就需要接收发过来的固件(文件),这个接收固件(bin文件)怎么做处理呢? 求高手指教,之前也提问过一个收发文件的问题 ,感觉还不是太清楚
    发表于 07-31 00:29

    鸿蒙设备学习菜鸟指南》之 【五、搭建开发环境】

    全套开发环境• Linux系统:同上 开发环境建立后,我们要做的第一件事情,就是在建立一个目录,名字叫做OHOS,后面我们的开发文件,都放在这个目录内,便于统一
    发表于 10-30 13:59

    sdk5鸿蒙利用文件管理器获取文件Uri的过程

    )); } 捕捉(异常e){系统。出.println(e.toString()); }}} }}文件最大可以选择500个,它返回的uri好像是安卓的uri,所以需要转换成鸿蒙的,这样子就到了看路径的形式,他应该是把文件弄到了
    发表于 04-27 11:03

    文件管理开发指南全新登场,快来了解如何访问各类文件

    在应用开发的过程中,我们经常会用到各种各样的文件,例如文档、图片、音频、视频等,如何管理访问这些文件?应用沙箱如何使用?应用如何选择和保存
    发表于 06-09 10:54

    嵌入式linux系统开发文件类型

    、符号链接文件、管道文件、套接字文件、字符设备文件、块设备文件。下面尚观教育小编给同学们讲解嵌入式linux
    发表于 08-27 11:31 407次阅读

    文件管理开发指南全新登场,快来了解如何访问各类文件

    在应用开发的过程中,我们经常会用到各种各样的文件,例如文档、图片、音频、视频等,如何管理访问这些文件?应用沙箱如何使用?应用如何选择和保存
    的头像 发表于 06-09 09:10 571次阅读

    鸿蒙开发实战:【文件管理

    文件管理相关的功能,使用[@ohos.multimedia.medialibrary]、[@ohos.filemanagement.userFileManager] 、[@
    的头像 发表于 03-20 21:57 668次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b>实战:【<b class='flag-5'>文件</b><b class='flag-5'>管理</b>】

    鸿蒙开发接口安全:【@ohos.abilityAccessCtrl (访问控制管理)】

    访问控制管理:获取访问控制模块对象。
    的头像 发表于 06-05 09:16 601次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b>接口安全:【@<b class='flag-5'>ohos</b>.abilityAccessCtrl (<b class='flag-5'>访问</b>控制<b class='flag-5'>管理</b>)】

    鸿蒙开发文件管理:【@ohos.document (文件交互)】

    通过文件管理器选择文件,异步返回文件URI,使用promise形式返回结果。
    的头像 发表于 06-11 17:51 454次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发文件</b><b class='flag-5'>管理</b>:【@<b class='flag-5'>ohos</b>.document (<b class='flag-5'>文件</b>交互)】

    鸿蒙开发文件管理:【@ohos.environment (目录环境能力)】

    该模块提供环境目录能力,获取内存存储根目录、公共文件根目录的JS接口。
    的头像 发表于 06-13 10:27 520次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发文件</b><b class='flag-5'>管理</b>:【@<b class='flag-5'>ohos</b>.environment (目录环境能力)】

    鸿蒙开发文件管理:【@ohos.fileio (文件管理)】

    该模块提供文件存储管理能力,包括文件基本管理文件目录管理
    的头像 发表于 06-12 18:12 1232次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发文件</b><b class='flag-5'>管理</b>:【@<b class='flag-5'>ohos</b>.fileio (<b class='flag-5'>文件</b><b class='flag-5'>管理</b>)】

    鸿蒙开发文件管理:【@ohos.securityLabel (数据标签)】

    该模块提供文件数据安全等级的相关功能:向应用程序提供查询、设置文件数据安全等级的JS接口。
    的头像 发表于 06-13 17:04 284次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发文件</b><b class='flag-5'>管理</b>:【@<b class='flag-5'>ohos</b>.securityLabel (数据标签)】

    鸿蒙开发文件管理:【@ohos.statfs (statfs)】

    该模块提供文件系统相关存储信息的功能,向应用程序提供获取文件系统总字节数、空闲字节数的JS接口。
    的头像 发表于 06-13 09:46 284次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发文件</b><b class='flag-5'>管理</b>:【@<b class='flag-5'>ohos</b>.statfs (statfs)】

    鸿蒙开发文件管理:【@ohos.volumeManager (卷管理)】

    该模块提供卷、磁盘查询和管理的相关功能:包括查询卷信息,对卷的挂载卸载、对磁盘分区以及卷的格式化等功能。
    的头像 发表于 06-14 10:12 443次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发文件</b><b class='flag-5'>管理</b>:【@<b class='flag-5'>ohos</b>.volumeManager (卷<b class='flag-5'>管理</b>)】