公共文件訪問與管理
該模塊提供公共文件訪問和管理的服務接口,向下對接底層文件管理服務,如媒體庫、外卡管理;向上對應用程序提供公共文件查詢、創(chuàng)建的能力。
說明:
開發(fā)前請熟悉鴻蒙開發(fā)指導文檔 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md
]
- 本模塊首批接口從API version 9開始支持。后續(xù)版本的新增接口,采用上角標單獨標記接口的起始版本。
- 本模塊接口為系統接口,三方應用不支持調用,當前只支持filepicker調用。
導入模塊
import filemanager from '@ohos.fileManager';
filemanager.getRoot
getRoot(options? : {dev? : DevInfo}) : Promise
以異步方法獲取第一層相冊,目錄信息。使用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) : 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
以異步方法獲取第二層相冊,文件信息。使用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 | 文件信息 |
異常:
錯誤名稱 | 錯誤類型 | 錯誤碼 | 說明 |
---|---|---|---|
對應的目錄、相冊不存在 | 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) : 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
以異步方法創(chuàng)建文件到指定路徑,返回文件uri。使用promise形式返回結果。
系統能力 :SystemCapability.FileManagement.UserFileService
參數:
參數名 | 類型 | 必填 | 說明 |
---|---|---|---|
filename | string | 是 | 待創(chuàng)建的文件名 |
path | string | 是 | 待保存目的相冊uri |
options | Object | 否 | 支持如下選項: - dev,[DevInfo]類型,不填默認dev = {name: "local"}, 當前僅支持設備'local' |
返回值:
類型 | 說明 |
---|---|
Promise | 文件uri |
異常:
錯誤名稱 | 錯誤類型 | 錯誤碼 | 說明 |
---|---|---|---|
創(chuàng)建文件不允許 | 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不是相冊、目錄 |
示例:
// 創(chuàng)建文件,返回文件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
以異步方法創(chuàng)建文件到指定路徑,返回文件uri。使用callback形式返回結果。
系統能力 :SystemCapability.FileManagement.UserFileService
參數:
參數名 | 類型 | 必填 | 說明 |
---|---|---|---|
filename | string | 是 | 待創(chuàng)建的文件名 |
path | string | 是 | 待保存目的相冊uri |
options | Object | 否 | 支持如下選項: - dev,[DevInfo]類型,不填默認dev = {name: "local"}, 當前僅支持設備'local' |
callback | AsyncCallback<[FileInfo][]> | 是 | 異步獲取文件的信息之后的回調 |
異常:
錯誤名稱 | 錯誤類型 | 錯誤碼 | 說明 |
---|---|---|---|
創(chuàng)建文件不允許 | 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不是相冊、目錄 |
示例:
// 創(chuàng)建文件,返回文件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 | 是 | 否 | 媒體修改時間HarmonyOS與OpenHarmony鴻蒙文檔籽料:mau123789是v直接拿 |
DevInfo
設備類型,配置接口訪問的設備類型。
系統能力 :以下各項對應的系統能力均為SystemCapability.FileManagement.UserFileService。
屬性
參數名 | 類型 | 可讀 | 可寫 | 說明 |
---|---|---|---|---|
name | string | 是 | 是 | 設備名稱 |
審核編輯 黃宇
-
鴻蒙
+關注
關注
57文章
2362瀏覽量
42884
發(fā)布評論請先 登錄
相關推薦
評論