公共文件訪問與管理
該模塊提供公共文件訪問和管理的服務(wù)接口,向下對接底層文件管理服務(wù),如媒體庫、外卡管理;向上對應(yīng)用程序提供公共文件查詢、創(chuàng)建的能力。
說明:
開發(fā)前請熟悉鴻蒙開發(fā)指導(dǎo)文檔 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md
]
- 本模塊首批接口從API version 9開始支持。后續(xù)版本的新增接口,采用上角標(biāo)單獨標(biāo)記接口的起始版本。
- 本模塊接口為系統(tǒng)接口,三方應(yīng)用不支持調(diào)用,當(dāng)前只支持filepicker調(diào)用。
導(dǎo)入模塊
import filemanager from '@ohos.fileManager';
filemanager.getRoot
getRoot(options? : {dev? : DevInfo}) : Promise
以異步方法獲取第一層相冊,目錄信息。使用promise形式返回結(jié)果。
系統(tǒng)能力 :SystemCapability.FileManagement.UserFileService
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
options | Object | 否 | 支持如下選項: - dev,[DevInfo]類型,不填默認(rèn)dev = {name: "local"}, 當(dāng)前僅支持設(shè)備'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形式返回結(jié)果。
系統(tǒng)能力 :SystemCapability.FileManagement.UserFileService
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
options | Object | 否 | 支持如下選項: - dev,[DevInfo]類型,不填默認(rèn)dev = {name: "local"}, 當(dāng)前僅支持設(shè)備'local' |
callback | AsyncCallback<[FileInfo][]> | 是 | 異步獲取文件的信息之后的回調(diào) |
示例:
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形式返回結(jié)果。
系統(tǒng)能力 :SystemCapability.FileManagement.UserFileService
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
path | string | 是 | 待查詢目錄uri |
type | string | 是 | 待查詢文件類型, 支持以下類型 "file", "image", "audio", "video" |
options | Object | 否 | 支持如下選項: - dev,[DevInfo]類型,不填默認(rèn)dev = {name: "local"}, 當(dāng)前僅支持設(shè)備'local'。 - offset,number類型,待查詢文件偏移個數(shù)。 - count,number類型,待查詢文件個數(shù)。 |
返回值:
類型 | 說明 |
---|---|
Promise | 文件信息 |
異常:
錯誤名稱 | 錯誤類型 | 錯誤碼 | 說明 |
---|---|---|---|
對應(yīng)的目錄、相冊不存在 | No such file or directory | 2 | uri對應(yīng)的目錄、相冊不存在 |
獲取FMS服務(wù)失敗 | No such process | 3 | 獲取FMS服務(wù)失敗 |
path對應(yīng)uri不是相冊、目錄 | Not a directory | 20 | path對應(yīng)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形式返回結(jié)果。
系統(tǒng)能力 :SystemCapability.FileManagement.UserFileService
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
path | string | 是 | 待查詢目錄uri |
type | string | 是 | 待查詢文件類型, 支持以下類型 "file", "image", "audio", "video" |
options | Object | 否 | 支持如下選項: - dev,[DevInfo]類型,不填默認(rèn)dev = {name: "local"}, 當(dāng)前僅支持設(shè)備'local'。 - offset,number類型,待查詢文件偏移個數(shù)。 - count,number類型,待查詢文件個數(shù)。 |
callback | AsyncCallback<[FileInfo][]> | 是 | 異步獲取文件的信息之后的回調(diào) |
異常:
錯誤名稱 | 錯誤類型 | 錯誤碼 | 說明 |
---|---|---|---|
對應(yīng)的目錄、相冊不存在 | No such file or directory | 2 | uri對應(yīng)的目錄、相冊不存在 |
獲取FMS服務(wù)失敗 | No such process | 3 | 獲取FMS服務(wù)失敗 |
path對應(yīng)uri不是相冊、目錄 | Not a directory | 20 | path對應(yīng)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形式返回結(jié)果。
系統(tǒng)能力 :SystemCapability.FileManagement.UserFileService
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
filename | string | 是 | 待創(chuàng)建的文件名 |
path | string | 是 | 待保存目的相冊uri |
options | Object | 否 | 支持如下選項: - dev,[DevInfo]類型,不填默認(rèn)dev = {name: "local"}, 當(dāng)前僅支持設(shè)備'local' |
返回值:
類型 | 說明 |
---|---|
Promise | 文件uri |
異常:
錯誤名稱 | 錯誤類型 | 錯誤碼 | 說明 |
---|---|---|---|
創(chuàng)建文件不允許 | Operation not permitted | 1 | 已有重名文件 |
對應(yīng)的目錄、相冊不存在 | No such file or directory | 2 | uri對應(yīng)的目錄、相冊不存在 |
獲取FMS服務(wù)失敗 | No such process | 3 | 獲取FMS服務(wù)失敗 |
path對應(yīng)uri不是相冊、目錄 | Not a directory | 20 | path對應(yīng)uri不是相冊、目錄 |
示例:
// 創(chuàng)建文件,返回文件uri
let media_path = "" // 通過listFile、getRoot獲取的文件uri
let name = "xxx.jpg" // 待保存文件的后綴
filemanager.createFile(media_path, name).then((uri) = > {
// 返回uri給應(yīng)用
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形式返回結(jié)果。
系統(tǒng)能力 :SystemCapability.FileManagement.UserFileService
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
filename | string | 是 | 待創(chuàng)建的文件名 |
path | string | 是 | 待保存目的相冊uri |
options | Object | 否 | 支持如下選項: - dev,[DevInfo]類型,不填默認(rèn)dev = {name: "local"}, 當(dāng)前僅支持設(shè)備'local' |
callback | AsyncCallback<[FileInfo][]> | 是 | 異步獲取文件的信息之后的回調(diào) |
異常:
錯誤名稱 | 錯誤類型 | 錯誤碼 | 說明 |
---|---|---|---|
創(chuàng)建文件不允許 | Operation not permitted | 1 | 已有重名文件 |
對應(yīng)的目錄、相冊不存在 | No such file or directory | 2 | uri對應(yīng)的目錄、相冊不存在 |
獲取FMS服務(wù)失敗 | No such process | 3 | 獲取FMS服務(wù)失敗 |
path對應(yīng)uri不是相冊、目錄 | Not a directory | 20 | path對應(yīng)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給應(yīng)用
console.log("file uri:"+uri);
});
FileInfo
文件信息類型,通過getRoot, listFile等接口返回的類型。
系統(tǒng)能力 :以下各項對應(yīng)的系統(tǒng)能力均為SystemCapability.FileManagement.UserFileService。
屬性
參數(shù)名 | 類型 | 可讀 | 可寫 | 說明 |
---|---|---|---|---|
name | string | 是 | 否 | 文件名稱 |
path | string | 是 | 否 | 文件Uri |
type | string | 是 | 否 | 文件類型 |
size | number | 是 | 否 | 文件大小 |
addedTime | number | 是 | 否 | 媒體插入時間 |
modifiedTime | number | 是 | 否 | 媒體修改時間HarmonyOS與OpenHarmony鴻蒙文檔籽料:mau123789是v直接拿 |
DevInfo
設(shè)備類型,配置接口訪問的設(shè)備類型。
系統(tǒng)能力 :以下各項對應(yīng)的系統(tǒng)能力均為SystemCapability.FileManagement.UserFileService。
屬性
參數(shù)名 | 類型 | 可讀 | 可寫 | 說明 |
---|---|---|---|---|
name | string | 是 | 是 | 設(shè)備名稱 |
審核編輯 黃宇
-
鴻蒙
+關(guān)注
關(guān)注
57文章
2339瀏覽量
42805
發(fā)布評論請先 登錄
相關(guān)推薦
評論