成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

OpenHarmony—文件管理系列之二

系統 OpenHarmony
本次分享的內容是基于在文件管理模塊中發現的部分問題記錄,希望和大家一起成長。

??想了解更多內容,請訪問:??

??51CTO和華為官方合作共建的鴻蒙技術社區??

??https://ost.51cto.com??

前言

本系列記錄團隊openHarmony 的學習和實踐中,所踩過的坑以及填坑的記錄,可能社區已有分享相關的文檔,但也不妨大家一起探討。

一、獲取指定路徑下的文件列表

若需獲取指定路徑下的文件列表,可以通過直接調用 file.list 來獲取,也可以通過先調用 context.getFilesDir 來獲取到應用在內部存儲上的文件路徑,得到路徑后通過調用 fileio.opendir 可以獲取到存儲路徑下的文件。

**需注意:**file模塊從 API Version 6開始不再維護,官方建議使用fileio模塊。

1、file模塊調用

getlist() {
file.list({
uri: 'internal://app/',
success: function(data) {
if(data.fileList.length) {
data.fileList.forEach(item=>{
console.log(JSON.stringify(item))
})
}
},
fail: function (data, code) {
console.error('call fail callback fail, code: ' + code + ', data: ' + data);
},
complete: function (data, code) {
console.info('call complete callback complete, code: ' + code + ', data: ' + data);
},
});
},

2、fileio模塊調用

getFilesDirUri() {
context.getFilesDir()
.then((data) => {
console.info('getFilesDir res' + data); // data 內部存儲目錄
this.opendir(data)
}).catch((error) => {
console.error('getFilesDir err' + error.message);
})
},
async opendir(path) {
let dir = await fileio.opendir(path); // dir 管理目錄
this.inquireFiles(dir);
},
async inquireFiles(dir) {
let dirent = await dir.read(); // 讀取下一個目錄項
if(dirent) {
console.log(dirent.name)
this.inquireFiles(dir); // 循環獲取下一個目錄下
}else {
dir.closeSync(); // 關閉目錄,釋放dir中的文件描述
}
},

二、文件管理api調用時發現的問題

1、注意設備的基線版本

遠程模擬器的底層內核是基于 HarmonyOS實現的,因此在遠程模擬器上可以調用實現的文件管理異步api。而底層內核基于OpenHarmony實現的設備,若無法成功調用文件管理異步api,那么就需要查看設備的基線版本號,查詢此基線版本是否支持文件管理的異步調用方式。

2、fileio模塊無復制文件夾方法

fileio模塊提供了文件的復制,但是沒有文件夾的復制,因此在實現文件夾復制時,可能需要自行去遍歷文件夾中的內容,逐個去遍歷其中的文件并復制到相應位置,新建同名文件夾到相應位置。

3、文件夾刪除時里面不能存在內容

fileio.rmdir刪除文件夾時,文件夾中不能存在文件、文件夾數據,只有當文件夾為空時才可以刪除文件夾。所以在刪除文件夾時需先刪除文件夾中的所有內容,再刪除文件夾 。

fileio.rmdir(path)
.then(function(res) {
// 刪除目錄成功,do something
console.log('rmdir res: '+JSON.stringify(res))
}).catch(function(err){
console.log('rmdir err: '+JSON.stringify(err))
});

文件夾中沒有文件數據執行刪除文件夾返回:

文件夾中存在文件數據執行刪除文件夾返回:

4、文件夾和文件移動

fileio模塊中沒有特定說明文件夾和文件的移動該如何實現,但我們可以通過 fileio.rename 重命名文件來實現,因為重命名文件需傳入兩個地址,一個是目標文件的當前絕對路徑,一個是目標文件的新絕對路徑,可以通過改變新絕對路徑來實現文件夾和文件的移動。

// 若文件夾存放路徑為:
let storagePath = 'res/data/data/com.kaihong.bookrack/files/storage/test';
// 需要移動到的路徑為:
let movePath = 'res/data/data/com.kaihong.bookrack/files/move';
// 將文件存放路徑后段拼接移動到的路徑
let Newpath = movePath + '/test'
fileio.rename(storagePath, Newpath)
.then(function(res) {
// 重命名文件成功,do something
}).catch(function(err){

});

三、總結

本次分享的內容是基于在文件管理模塊中發現的部分問題記錄,希望和大家一起成長。

??想了解更多內容,請訪問:??

??51CTO和華為官方合作共建的鴻蒙技術社區??

??https://ost.51cto.com??

責任編輯:jianghua 來源: 鴻蒙社區
相關推薦

2022-02-28 14:54:48

openHarmon鴻蒙操作系統

2022-03-30 14:07:47

Harmony操作系統鴻蒙

2022-05-11 15:08:52

驅動開發系統移植

2022-03-29 10:04:44

APIHarmony文件管理

2022-03-10 14:45:23

HarmonyAPI操作系統

2018-04-17 14:20:45

物聯網發展趨勢互聯網

2011-10-17 15:03:48

2011-11-17 15:28:02

2021-11-25 09:54:54

鴻蒙HarmonyOS應用

2009-07-01 20:58:40

2009-09-04 13:09:06

IT職業規劃喻勇

2021-11-08 15:06:15

鴻蒙HarmonyOS應用

2018-05-27 00:14:09

2017-01-12 15:06:30

AndroidAppActivityMan

2014-11-13 10:59:41

私有云管理私有云服務水平協議

2015-09-10 09:16:45

TCP緩存

2022-05-09 11:52:38

Java卡片服務卡片

2021-10-11 11:58:41

Channel原理recvq

2021-12-01 07:02:16

虛擬化LinuxCPU

2013-03-06 19:00:48

運維安全管理云計算安恒
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美性大战久久久久久久蜜臀 | 欧美一区二区在线看 | 亚洲国产一区在线 | 欧美激情一区二区三级高清视频 | 女同久久另类99精品国产 | 亚洲激情一区二区三区 | 国产成人综合在线 | 99pao成人国产永久免费视频 | www日本在线观看 | av三级 | 日韩亚洲欧美一区 | 欧美狠狠操 | com.国产 | 国产一区二区久久 | 91av视频在线观看 | 国产精品视频网 | 99免费精品视频 | 伊人网综合在线观看 | 欧美综合在线观看 | jvid精品资源在线观看 | 日韩欧美国产精品一区二区三区 | 欧美一级免费看 | 在线观看亚洲精品视频 | 91xh98hx 在线 国产 | 九九久久精品 | 欧美成人精品欧美一级 | 日韩电影免费观看中文字幕 | 免费视频99 | 成人在线观看免费视频 | 亚洲不卡在线观看 | 亚洲欧美中文字幕 | 亚洲综合三区 | 美国一级毛片a | 欧美精品福利视频 | 国产精品成人一区二区 | 久久久久成人精品 | 免费一级做a爰片久久毛片潮喷 | 美女精品一区 | 激情综合五月天 | 99reav| 欧美亚洲国产一区二区三区 |