自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

OpenHarmony—文件管理系列之一

系統(tǒng) OpenHarmony
本系列記錄團(tuán)隊(duì)openHarmony 的學(xué)習(xí)和實(shí)踐中,所踩過的坑以及填坑的記錄,可能社區(qū)已有分享相關(guān)的文檔。

??想了解更多內(nèi)容,請?jiān)L問:??

??51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)??

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

前言

本系列記錄團(tuán)隊(duì)openHarmony 的學(xué)習(xí)和實(shí)踐中,所踩過的坑以及填坑的記錄,可能社區(qū)已有分享相關(guān)的文檔。

文件管理

文件管理的功能點(diǎn)較多,團(tuán)隊(duì)將持續(xù)學(xué)習(xí)試驗(yàn),并總結(jié)相應(yīng)的知識點(diǎn)與大家分享。官方接口API:

https://developer.harmonyos.com/cn/docs/documentation/doc-references/js-apis-fileio-0000001168366687

https://gitee.com/openharmony/interface_sdk-js/blob/master/api/@ohos.fileio.d.ts

一、文件打開

文件打開方法,有3個(gè)參數(shù)path、flags、mode。其中flags表示 打開文件 ,默認(rèn)以只讀方式打開 ;mode,若創(chuàng)建文件 , 則指定文件的權(quán)限,默認(rèn)給定0o666 。

// 異步方式1:promise形式打開文件
let fd = await fileio.open(path, 0o1, 0o0200);
// 異步方式2:使用callback形式打開文件
await fileio.open(path, 0, function(err, fd) {
});
// 同步方式打開文件
let fd = fileio.openSync(path,flags,mode);

二、文件寫入

文件寫入,官方提供了多種方式可以實(shí)現(xiàn),比如:

let fd = fileio.openSync(fpath, 0o102, 0o666);
// 異步方式1:promise形式返回結(jié)果
let num = await fileio.write(fd, "hello, world");// 返回結(jié)果:Promise<number>
// 異步方式2:使用callback形式返回結(jié)果
fileio.write(fd, "hello, world", function (err, bytesWritten) {
if (!err) {
console.log(bytesWritten)
}
});
// 同步方式
let num = fileio.writeSync(fd, "hello, world");

文件寫入前,如果寫入文件的路徑不存在,則直接寫入會(huì)報(bào)錯(cuò),所以需要判斷路徑是否存在后,需要根據(jù)業(yè)務(wù)情況進(jìn)行處理。設(shè)想的處理方式有2種,我們則采用第一種方案:

1)根據(jù)原定文件路徑,創(chuàng)建相關(guān)文件夾,完成創(chuàng)建路徑所需的文件夾后,創(chuàng)建文件并寫入;

2)提示用戶,寫入路徑不存在;

創(chuàng)建文件夾的接口,下面會(huì)由講述。

三、文件讀取

文件讀取,也有相應(yīng)的接口,例如:

let fd = fileio.openSync(path, 0o2);
let buf = new ArrayBuffer(4096);
// 異步方式1:promise形式返回結(jié)果
let res = await fileio.read(fd, buf); // 返回結(jié)果:Promise<Readout>
// 異步方式2:使用callback形式返回結(jié)果
await fileio.read(fd, buf, function (err, readOut) {
if (!err) {
console.log(String.fromCharCode.apply(null, new Uint8Array(readOut.buffer)))
}
});
// 同步方式
let num = fileio.readSync(fd, buf);

四、文件路徑判斷

讀取寫入之前,都需要判斷下文件路徑是否存在,那么可用下面這個(gè)接口判斷。

// 異步方式1:promise形式返回結(jié)果
fileio.access(path)
.then(function(err) {
// 文件存在,do something
}).catch(function(e) {
//若不符合條件則進(jìn)入
});
// 異步方式2:使用callback形式返回結(jié)果
fileio.access(path, function (err) {
});
// 同步方式
try {
/**
* path:待訪問文件的絕對路徑。
* mode:確認(rèn)當(dāng)前進(jìn)程是否具有對應(yīng)權(quán)限:
0:確認(rèn)文件是否存在。
1:確認(rèn)當(dāng)前進(jìn)程是否具有可執(zhí)行權(quán)限。
2:確認(rèn)當(dāng)前進(jìn)程是否具有寫權(quán)限。
4:確認(rèn)當(dāng)前進(jìn)程是否具有讀權(quán)限。
**/
fileio.accessSync(path, mode);
} catch(e) {
//不符合條件則進(jìn)入
}

五、創(chuàng)建文件夾

創(chuàng)建文件夾的方法如下,如果需要設(shè)置文件夾的訪問權(quán)限,可以設(shè)置mode參數(shù)值:

// 異步方式1:promise形式創(chuàng)建文件夾
await fileio.mkdir(path, mode)
.then(function(err) {
// 目錄創(chuàng)建成功,do something
}).catch(function (e){
});
// 異步方式2:使用callback形式創(chuàng)建文件夾
await fileio.mkdir(path, mode, function(err) {
if (!err) {
// do something
}
});
// 同步方式創(chuàng)建文件夾
fileio.mkdirSync(path, mode);

六、個(gè)人總結(jié)

本次分享的內(nèi)容僅是文件管理模塊學(xué)習(xí)研究的開端,希望與大家共同成長。

??想了解更多內(nèi)容,請?jiān)L問:??

??51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)??

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

責(zé)任編輯:jianghua 來源: 鴻蒙社區(qū)
相關(guān)推薦

2022-03-04 15:43:36

文件管理模塊Harmony鴻蒙

2022-03-30 14:07:47

Harmony操作系統(tǒng)鴻蒙

2022-03-15 15:24:53

操作系統(tǒng)RTOSAT模塊

2022-05-16 11:50:45

HDF驅(qū)動(dòng)框架

2009-06-01 11:28:48

EquinoxOSGi入門

2022-03-29 10:04:44

APIHarmony文件管理

2022-04-18 10:47:55

UI框架鴻蒙操作系統(tǒng)

2022-03-10 14:45:23

HarmonyAPI操作系統(tǒng)

2021-07-07 09:18:00

Java并發(fā)編程

2023-06-27 15:12:46

C++三方庫移植

2018-04-12 21:31:31

物聯(lián)網(wǎng)發(fā)展趨勢互聯(lián)網(wǎng)

2019-01-10 08:33:17

物聯(lián)網(wǎng)IoT機(jī)器

2021-09-26 05:05:46

GoFiber Express

2011-10-11 10:39:24

2021-11-25 09:54:54

鴻蒙HarmonyOS應(yīng)用

2009-09-22 13:14:35

ibmdwSOA

2021-11-05 15:00:33

鴻蒙HarmonyOS應(yīng)用

2023-11-10 10:08:23

2022-04-01 16:04:33

Harmonytabs容器鴻蒙

2012-09-26 09:52:57

項(xiàng)目項(xiàng)目回顧時(shí)間管理
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號