公共文件访问与管理
公共文件访问与管理
说明:
- 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
- 本模块接口为系统接口,三方应用不支持调用,当前只支持filepicker调用。
导入模块
import filemanager from '@ohos.fileManager';
filemanager.getRoot
getRoot(options? : {dev? : DevInfo}) : Promise<FileInfo[]>
以异步方法获取第一层相册,目录信息。使用promise形式返回结果。
系统能力:SystemCapability.FileManagement.FileManagerService
参数
参数名 类型 必填 说明 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) });
1
2
3
4
5
6
7
8
9
filemanager.getRoot
getRoot(options? : {dev? : DevInfo}, callback : AsyncCallback<FileInfo[]>) : void
以异步方法获取第一层相册,目录信息。使用callback形式返回结果。
系统能力:SystemCapability.FileManagement.FileManagerService
参数
参数名 类型 必填 说明 options Object 否 支持如下选项:
- dev,DevInfo类型,不填默认dev = {name: "local"}, 当前仅支持设备'local'callback AsyncCallback<FileInfo[]> 是 异步获取文件的信息之后的回调 示例
filemanager.getRoot((err, fileInfo) => { if(Array.isArray(fileInfo)) { for (var i = 0; i < fileInfo.length; i++) { console.log("file:"+JSON.stringify(fileInfo)); } } });
1
2
3
4
5
6
7
filemanager.listFile
listFile(path : string, type : string, options? : {dev? : DevInfo, offset? : number, count? : number}) : Promise<FileInfo[]>
以异步方法获取第二层相册,文件信息。使用promise形式返回结果。
系统能力:SystemCapability.FileManagement.FileManagerService
参数
参数名 类型 必填 说明 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 = file.uri 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(err) });
1
2
3
4
5
6
7
8
9
10
11
12
13
filemanager.listFile
listFile(path : string, type : string, options? : {dev? : DevInfo, offset? : number, count? : number}, callback : AsyncCallback<FileInfo[]>) : void
以异步方法获取第二层相册,文件信息。使用callback形式返回结果。
系统能力:SystemCapability.FileManagement.FileManagerService
参数
参数名 类型 必填 说明 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获取的文件uri let media_path = file.uri filemanager.listFile(media_path, "file", (err, fileInfo) => { if(Array.isArray(fileInfo)) { for (var i = 0; i < fileInfo.length; i++) { console.log("file:"+JSON.stringify(fileInfo)); } } });
1
2
3
4
5
6
7
8
9
filemanager.createFile
filemanager.createFile(path : string, filename : string, options? : {dev? : DevInfo}) : Promise<string>
以异步方法创建文件到指定路径,返回文件uri。使用promise形式返回结果。
系统能力:SystemCapability.FileManagement.FileManagerService
参数
参数名 类型 必填 说明 filename string 是 待创建的文件名 path string 是 待保存目的相册uri options Object 否 支持如下选项:
- dev,DevInfo类型,不填默认dev = {name: "local"}, 当前仅支持设备'local'返回值
类型 说明 string 文件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 = file.uri // 通过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); });
1
2
3
4
5
6
7
8
9
filemanager.createFile
createFile(path : string, filename: string, options? : {dev? : DevInfo}, callback : AsyncCallback<string>) : void
以异步方法创建文件到指定路径,返回文件uri。使用callback形式返回结果。
系统能力:SystemCapability.FileManagement.FileManagerService
参数
参数名 类型 必填 说明 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 = file.uri // 待保存文件的后缀 let name = "xxx.jpg" filemanager.createFile(media_path, name, (err, uri) => { // 返回uri给应用 console.log("file uri:"+uri); });
1
2
3
4
5
6
7
8
9
FileInfo
文件信息类型,通过getRoot, listFile等接口返回的类型。
系统能力:以下各项对应的系统能力均为SystemCapability.FileManagement.FileManagerService。
属性
参数名 | 类型 | 可读 | 可写 | 说明 |
---|---|---|---|---|
name | string | 是 | 否 | 文件名称 |
path | string | 是 | 否 | 文件Uri |
type | string | 是 | 否 | 文件类型 |
size | number | 是 | 否 | 文件大小 |
addedTime | number | 是 | 否 | 媒体插入时间 |
modifiedTime | number | 是 | 否 | 媒体修改时间 |
DevInfo
设备类型,配置接口访问的设备类型。
系统能力:以下各项对应的系统能力均为SystemCapability.FileManagement.FileManagerService。
属性
参数名 | 类型 | 可读 | 可写 | 说明 |
---|---|---|---|---|
name | string | 是 | 是 | 设备名称 |