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

参数:

参数名 类型 必填 说明
options Object 支持如下选项: - 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

参数:

参数名 类型 必填 说明
options Object 支持如下选项: - dev,[DevInfo]类型,不填默认dev = {name: “local”}, 当前仅支持设备’local’
callback AsyncCallback<[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

参数:

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

返回值:

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

异常:

错误名称 错误类型 错误码 说明
对应的目录、相册不存在 No such file or directory 2 uri对应的目录、相册不存在
获取FMS服务失败 No such process 3 获取FMS服务失败
path对应uri不是相册、目录 Not a directory 20 path对应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

参数:

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

异常:

错误名称 错误类型 错误码 说明
对应的目录、相册不存在 No such file or directory 2 uri对应的目录、相册不存在
获取FMS服务失败 No such process 3 获取FMS服务失败
path对应uri不是相册、目录 Not a directory 20 path对应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

参数:

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

返回值:

类型 说明
Promise 文件uri

异常:

错误名称 错误类型 错误码 说明
创建文件不允许 Operation not permitted 1 已有重名文件
对应的目录、相册不存在 No such file or directory 2 uri对应的目录、相册不存在
获取FMS服务失败 No such process 3 获取FMS服务失败
path对应uri不是相册、目录 Not a directory 20 path对应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

参数:

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

异常:

错误名称 错误类型 错误码 说明
创建文件不允许 Operation not permitted 1 已有重名文件
对应的目录、相册不存在 No such file or directory 2 uri对应的目录、相册不存在
获取FMS服务失败 No such process 3 获取FMS服务失败
path对应uri不是相册、目录 Not a directory 20 path对应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。

属性

参数名 类型 可读 可写 说明
name string 文件名称
path string 文件Uri
type string 文件类型
size number 文件大小
addedTime number 媒体插入时间
modifiedTime number 媒体修改时间

DevInfo

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

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

属性

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

相关推荐

  1. Linux文件压缩文件管理

    2024-06-15 03:08:01       35 阅读
  2. 华为鸿蒙应用--文件管理工具(鸿蒙工具)-ArkTs

    2024-06-15 03:08:01       136 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-15 03:08:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-15 03:08:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-06-15 03:08:01       82 阅读
  4. Python语言-面向对象

    2024-06-15 03:08:01       91 阅读

热门阅读

  1. CSS选择器种类总结

    2024-06-15 03:08:01       26 阅读
  2. 腾讯元宝APP:AIGC大模型的新篇章

    2024-06-15 03:08:01       23 阅读
  3. mysql之数据聚合

    2024-06-15 03:08:01       26 阅读
  4. 协程库——面试问题

    2024-06-15 03:08:01       30 阅读
  5. MPLS的配置

    2024-06-15 03:08:01       31 阅读
  6. Vue3Cron组件

    2024-06-15 03:08:01       22 阅读
  7. 腾讯测试开发<ieg 实验室>

    2024-06-15 03:08:01       34 阅读
  8. Python函数

    2024-06-15 03:08:01       30 阅读
  9. Superset二次开发之调研篇 v3.0 VS v4.0

    2024-06-15 03:08:01       38 阅读
  10. 深入理解Spring相关注解

    2024-06-15 03:08:01       30 阅读
  11. console-service.yaml

    2024-06-15 03:08:01       27 阅读
  12. MyBatis基础

    2024-06-15 03:08:01       31 阅读
  13. python编程技巧使用lru_cache缓存计算结果

    2024-06-15 03:08:01       54 阅读