該模塊為基礎(chǔ)文件操作API,提供基礎(chǔ)文件操作能力,包括文件基本管理、文件目錄管理、文件信息統(tǒng)計(jì)、文件流式讀寫等常用功能。
本模塊首批接口從API version 9開(kāi)始支持。后續(xù)版本的新增接口,采用上角標(biāo)單獨(dú)標(biāo)記接口的起始版本。
使用該功能模塊對(duì)文件/目錄進(jìn)行操作前,需要先獲取其應(yīng)用沙箱路徑,獲取方式及其接口用法請(qǐng)參考:
Stage模型
- import UIAbility from '@ohos.app.ability.UIAbility';
- export default class EntryAbility extends UIAbility {
- onWindowStageCreate(windowStage) {
- let context = this.context;
- let pathDir = context.filesDir;
- }
- }
FA模型
- import featureAbility from '@ohos.ability.featureAbility';
- let context = featureAbility.getContext();
- context.getFilesDir().then((data) => {
- let pathDir = data;
- })
FA模型context的具體獲取方法參見(jiàn)FA模型。
stat(file: string|number): Promise<Stat>
獲取文件詳細(xì)屬性信息,使用Promise異步回調(diào)。
系統(tǒng)能力:SystemCapability.FileManagement.File.FileIO
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
file | string|number | 是 | 文件應(yīng)用沙箱路徑path或已打開(kāi)的文件描述符fd。 |
返回值:
類型 | 說(shuō)明 |
---|---|
Promise<Stat> | Promise對(duì)象。返回文件的具體信息。 |
錯(cuò)誤碼:
接口拋出錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)基礎(chǔ)文件IO錯(cuò)誤碼。
示例:
- let filePath = pathDir + "/test.txt";
- fs.stat(filePath).then((stat) => {
- console.info("get file info succeed, the size of file is " + stat.size);
- }).catch((err) => {
- console.error("get file info failed with error message: " + err.message + ", error code: " + err.code);
- });
stat(file: string|number, callback: AsyncCallback<Stat>): void
獲取文件詳細(xì)屬性信息,使用callback異步回調(diào)。
系統(tǒng)能力:SystemCapability.FileManagement.File.FileIO
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
file | string|number | 是 | 文件應(yīng)用沙箱路徑path或已打開(kāi)的文件描述符fd。 |
callback | AsyncCallback<Stat> | 是 | 異步獲取文件的信息之后的回調(diào)。 |
錯(cuò)誤碼:
接口拋出錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)基礎(chǔ)文件IO錯(cuò)誤碼。
示例:
- fs.stat(pathDir, (err, stat) => {
- if (err) {
- console.error("get file info failed with error message: " + err.message + ", error code: " + err.code);
- } else {
- console.info("get file info succeed, the size of file is " + stat.size);
- }
- });
statSync(file: string|number): Stat
以同步方法獲取文件詳細(xì)屬性信息。
系統(tǒng)能力:SystemCapability.FileManagement.File.FileIO
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
file | string|number | 是 | 文件應(yīng)用沙箱路徑path或已打開(kāi)的文件描述符fd。 |
返回值:
類型 | 說(shuō)明 |
---|---|
表示文件的具體信息。 |
錯(cuò)誤碼:
接口拋出錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)基礎(chǔ)文件IO錯(cuò)誤碼。
示例:
- let stat = fs.statSync(pathDir);
- console.info("get file info succeed, the size of file is " + stat.size);
access(path: string): Promise<boolean>
檢查文件是否存在,使用Promise異步回調(diào)。
系統(tǒng)能力:SystemCapability.FileManagement.File.FileIO
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
path | string | 是 | 文件應(yīng)用沙箱路徑。 |
返回值:
類型 | 說(shuō)明 |
---|---|
Promise<boolean> | Promise對(duì)象。返回boolean,表示文件是否存在。 |
錯(cuò)誤碼:
接口拋出錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)基礎(chǔ)文件IO錯(cuò)誤碼。
示例:
- let filePath = pathDir + "/test.txt";
- fs.access(filePath).then((res) => {
- if (res) {
- console.info("file exists");
- }
- }).catch((err) => {
- console.error("access failed with error message: " + err.message + ", error code: " + err.code);
- });
access(path: string, callback: AsyncCallback<boolean>): void
檢查文件是否存在,使用callback異步回調(diào)。
系統(tǒng)能力:SystemCapability.FileManagement.File.FileIO
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
path | string | 是 | 文件應(yīng)用沙箱路徑。 |
callback | AsyncCallback<boolean> | 是 | 異步檢查文件是否存在的回調(diào)。 |
錯(cuò)誤碼:
接口拋出錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)基礎(chǔ)文件IO錯(cuò)誤碼。
示例:
- let filePath = pathDir + "/test.txt";
- fs.access(filePath, (err, res) => {
- if (err) {
- console.error("access failed with error message: " + err.message + ", error code: " + err.code);
- } else {
- if (res) {
- console.info("file exists");
- }
- }
- });
accessSync(path: string): boolean
以同步方法檢查文件是否存在。
系統(tǒng)能力:SystemCapability.FileManagement.File.FileIO
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
path | string | 是 | 文件應(yīng)用沙箱路徑。 |
返回值:
類型 | 說(shuō)明 |
---|---|
boolean | 返回boolean,表示文件是否存在。 |
錯(cuò)誤碼:
接口拋出錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)基礎(chǔ)文件IO錯(cuò)誤碼。
示例:
- let filePath = pathDir + "/test.txt";
- try {
- let res = fs.accessSync(filePath);
- if (res) {
- console.info("file exists");
- }
- } catch(err) {
- console.error("accessSync failed with error message: " + err.message + ", error code: " + err.code);
- }
close(file: File|number): Promise<void>
關(guān)閉文件,使用Promise異步回調(diào)。
系統(tǒng)能力:SystemCapability.FileManagement.File.FileIO
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
file | File|number | 是 | 已打開(kāi)的File對(duì)象或已打開(kāi)的文件描述符fd。 |
返回值:
類型 | 說(shuō)明 |
---|---|
Promise<void> | Promise對(duì)象。無(wú)返回值。 |
錯(cuò)誤碼:
接口拋出錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)基礎(chǔ)文件IO錯(cuò)誤碼。
示例:
- let filePath = pathDir + "/test.txt";
- let file = fs.openSync(filePath);
- fs.close(file).then(() => {
- console.info("close file succeed");
- }).catch((err) => {
- console.error("close file failed with error message: " + err.message + ", error code: " + err.code);
- });
close(file: File|number, callback: AsyncCallback<void>): void
關(guān)閉文件,使用callback異步回調(diào)。
系統(tǒng)能力:SystemCapability.FileManagement.File.FileIO
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
file | File|number | 是 | 已打開(kāi)的File對(duì)象或已打開(kāi)的文件描述符fd。 |
callback | AsyncCallback<void> | 是 | 異步關(guān)閉文件之后的回調(diào)。 |
錯(cuò)誤碼:
接口拋出錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)基礎(chǔ)文件IO錯(cuò)誤碼。
示例:
- let filePath = pathDir + "/test.txt";
- let file = fs.openSync(filePath);
- fs.close(file, (err) => {
- if (err) {
- console.error("close file failed with error message: " + err.message + ", error code: " + err.code);
- } else {
- console.info("close file success");
- }
- });
closeSync(file: File|number): void
以同步方法關(guān)閉文件。
系統(tǒng)能力:SystemCapability.FileManagement.File.FileIO
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
file | File|number | 是 | 已打開(kāi)的File對(duì)象或已打開(kāi)的文件描述符fd。 |
錯(cuò)誤碼:
接口拋出錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)基礎(chǔ)文件IO錯(cuò)誤碼。
示例:
- let filePath = pathDir + "/test.txt";
- let file = fs.openSync(filePath);
- fs.closeSync(file);
copyFile(src: string|number, dest: string|number, mode?: number): Promise<void>
復(fù)制文件,使用Promise異步回調(diào)。
系統(tǒng)能力:SystemCapability.FileManagement.File.FileIO
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
src | string|number | 是 | 待復(fù)制文件的路徑或待復(fù)制文件的文件描述符。 |
dest | string|number | 是 | 目標(biāo)文件路徑或目標(biāo)文件的文件描述符。 |
mode | number | 否 | mode提供覆蓋文件的選項(xiàng),當(dāng)前僅支持0,且默認(rèn)為0。 0:完全覆蓋目標(biāo)文件。 |
返回值:
類型 | 說(shuō)明 |
---|---|
Promise<void> | Promise對(duì)象。無(wú)返回值。 |
錯(cuò)誤碼:
接口拋出錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)基礎(chǔ)文件IO錯(cuò)誤碼。
示例:
- let srcPath = pathDir + "/srcDir/test.txt";
- let dstPath = pathDir + "/dstDir/test.txt";
- fs.copyFile(srcPath, dstPath).then(() => {
- console.info("copy file succeed");
- }).catch((err) => {
- console.error("copy file failed with error message: " + err.message + ", error code: " + err.code);
- });
copyFile(src: string|number, dest: string|number, mode?: number, callback: AsyncCallback<void>): void
復(fù)制文件,使用callback異步回調(diào)。
系統(tǒng)能力:SystemCapability.FileManagement.File.FileIO
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
src | string|number | 是 | 待復(fù)制文件的路徑或待復(fù)制文件的文件描述符。 |
dest | string|number | 是 | 目標(biāo)文件路徑或目標(biāo)文件的文件描述符。 |
mode | number | 否 | mode提供覆蓋文件的選項(xiàng),當(dāng)前僅支持0,且默認(rèn)為0。 0:完全覆蓋目標(biāo)文件,未覆蓋部分將被裁切掉。 |
callback | AsyncCallback<void> | 是 | 異步復(fù)制文件之后的回調(diào)。 |
錯(cuò)誤碼:
接口拋出錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)基礎(chǔ)文件IO錯(cuò)誤碼。
示例:
- let srcPath = pathDir + "/srcDir/test.txt";
- let dstPath = pathDir + "/dstDir/test.txt";
- fs.copyFile(srcPath, dstPath, (err) => {
- if (err) {
- console.error("copy file failed with error message: " + err.message + ", error code: " + err.code);
- } else {
- console.info("copy file success");
- }
- });
copyFileSync(src: string|number, dest: string|number, mode?: number): void
以同步方法復(fù)制文件。
系統(tǒng)能力:SystemCapability.FileManagement.File.FileIO
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
src | string|number | 是 | 待復(fù)制文件的路徑或待復(fù)制文件的文件描述符。 |
dest | string|number | 是 | 目標(biāo)文件路徑或目標(biāo)文件的文件描述符。 |
mode | number | 否 | mode提供覆蓋文件的選項(xiàng),當(dāng)前僅支持0,且默認(rèn)為0。 0:完全覆蓋目標(biāo)文件,未覆蓋部分將被裁切掉。 |
錯(cuò)誤碼:
接口拋出錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)基礎(chǔ)文件IO錯(cuò)誤碼。
示例:
- let srcPath = pathDir + "/srcDir/test.txt";
- let dstPath = pathDir + "/dstDir/test.txt";
- fs.copyFileSync(srcPath, dstPath);
mkdir(path: string): Promise<void>
創(chuàng)建目錄,使用Promise異步回調(diào)。
系統(tǒng)能力:SystemCapability.FileManagement.File.FileIO
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
path | string | 是 | 目錄的應(yīng)用沙箱路徑。 |
返回值:
類型 | 說(shuō)明 |
---|---|
Promise<void> | Promise對(duì)象。無(wú)返回值。 |
錯(cuò)誤碼:
接口拋出錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)基礎(chǔ)文件IO錯(cuò)誤碼。
示例:
- let dirPath = pathDir + "/testDir";
- fs.mkdir(dirPath).then(() => {
- console.info("mkdir succeed");
- }).catch((err) => {
- console.error("mkdir failed with error message: " + err.message + ", error code: " + err.code);
- });
mkdir(path: string, callback: AsyncCallback<void>): void
創(chuàng)建目錄,使用callback異步回調(diào)。
系統(tǒng)能力:SystemCapability.FileManagement.File.FileIO
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
path | string | 是 | 目錄的應(yīng)用沙箱路徑。 |
callback | AsyncCallback<void> | 是 | 異步創(chuàng)建目錄操作完成之后的回調(diào)。 |
錯(cuò)誤碼:
接口拋出錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)基礎(chǔ)文件IO錯(cuò)誤碼。
示例:
- let dirPath = pathDir + "/testDir";
- fs.mkdir(dirPath, (err) => {
- if (err) {
- console.error("mkdir failed with error message: " + err.message + ", error code: " + err.code);
- } else {
- console.info("mkdir success");
- }
- });
mkdirSync(path: string): void
以同步方法創(chuàng)建目錄。
系統(tǒng)能力:SystemCapability.FileManagement.File.FileIO
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
path | string | 是 | 目錄的應(yīng)用沙箱路徑。 |
錯(cuò)誤碼:
接口拋出錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)基礎(chǔ)文件IO錯(cuò)誤碼。
示例:
- let dirPath = pathDir + "/testDir";
- fs.mkdirSync(dirPath);
open(path: string, mode?: number): Promise<File>
打開(kāi)文件,使用Promise異步回調(diào)。支持使用URI打開(kāi)文件。
系統(tǒng)能力:SystemCapability.FileManagement.File.FileIO
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
path | string | 是 | 文件的應(yīng)用沙箱路徑或文件URI。 |
mode | number | 否 | 打開(kāi)文件的選項(xiàng),必須指定如下選項(xiàng)中的一個(gè),默認(rèn)以只讀方式打開(kāi): - OpenMode.READ_ONLY(0o0):只讀打開(kāi)。 - OpenMode.WRITE_ONLY(0o1):只寫打開(kāi)。 - OpenMode.READ_WRITE(0o2):讀寫打開(kāi)。 給定如下功能選項(xiàng),以按位或的方式追加,默認(rèn)不給定任何額外選項(xiàng): - OpenMode.CREATE(0o100):若文件不存在,則創(chuàng)建文件。 - OpenMode.TRUNC(0o1000):如果文件存在且以只寫或讀寫的方式打開(kāi)文件,則將其長(zhǎng)度裁剪為零。 - OpenMode.APPEND(0o2000):以追加方式打開(kāi),后續(xù)寫將追加到文件末尾。 - OpenMode.NONBLOCK(0o4000):如果path指向FIFO、塊特殊文件或字符特殊文件,則本次打開(kāi)及后續(xù) IO 進(jìn)行非阻塞操作。 - OpenMode.DIR(0o200000):如果path不指向目錄,則出錯(cuò)。 - OpenMode.NOFOLLOW(0o400000):如果path指向符號(hào)鏈接,則出錯(cuò)。 - OpenMode.SYNC(0o4010000):以同步IO的方式打開(kāi)文件。 |
返回值:
類型 | 說(shuō)明 |
---|---|
Promise<File> | Promise對(duì)象。返回File對(duì)象。 |
錯(cuò)誤碼:
接口拋出錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)基礎(chǔ)文件IO錯(cuò)誤碼。
示例:
- let filePath = pathDir + "/test.txt";
- fs.open(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE).then((file) => {
- console.info("file fd: " + file.fd);
- }).catch((err) => {
- console.error("open file failed with error message: " + err.message + ", error code: " + err.code);
- });
open(path: string, mode?: number, callback: AsyncCallback<File>): void
打開(kāi)文件,使用callback異步回調(diào)。支持使用URI打開(kāi)文件。
系統(tǒng)能力:SystemCapability.FileManagement.File.FileIO
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
path | string | 是 | 文件的應(yīng)用沙箱路徑或URI。 |
mode | number | 否 | 打開(kāi)文件的選項(xiàng),必須指定如下選項(xiàng)中的一個(gè),默認(rèn)以只讀方式打開(kāi): - OpenMode.READ_ONLY(0o0):只讀打開(kāi)。 - OpenMode.WRITE_ONLY(0o1):只寫打開(kāi)。 - OpenMode.READ_WRITE(0o2):讀寫打開(kāi)。 給定如下功能選項(xiàng),以按位或的方式追加,默認(rèn)不給定任何額外選項(xiàng): - OpenMode.CREATE(0o100):若文件不存在,則創(chuàng)建文件。 - OpenMode.TRUNC(0o1000):如果文件存在且以只寫或讀寫的方式打開(kāi)文件,則將其長(zhǎng)度裁剪為零。 - OpenMode.APPEND(0o2000):以追加方式打開(kāi),后續(xù)寫將追加到文件末尾。 - OpenMode.NONBLOCK(0o4000):如果path指向FIFO、塊特殊文件或字符特殊文件,則本次打開(kāi)及后續(xù) IO 進(jìn)行非阻塞操作。 - OpenMode.DIR(0o200000):如果path不指向目錄,則出錯(cuò)。 - OpenMode.NOFOLLOW(0o400000):如果path指向符號(hào)鏈接,則出錯(cuò)。 - OpenMode.SYNC(0o4010000):以同步IO的方式打開(kāi)文件。 |
錯(cuò)誤碼:
接口拋出錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)基礎(chǔ)文件IO錯(cuò)誤碼。
示例:
- let filePath = pathDir + "/test.txt";
- fs.open(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE, (err, file) => {
- if (err) {
- console.error("mkdir failed with error message: " + err.message + ", error code: " + err.code);
- } else {
- console.info("file fd: " + file.fd);
- }
- });
openSync(path: string, mode?: number): File
以同步方法打開(kāi)文件。支持使用URI打開(kāi)文件。
系統(tǒng)能力:SystemCapability.FileManagement.File.FileIO
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
path | string | 是 | 打開(kāi)文件的應(yīng)用沙箱路徑或URI。 |
mode | number | 否 | 打開(kāi)文件的選項(xiàng),必須指定如下選項(xiàng)中的一個(gè),默認(rèn)以只讀方式打開(kāi): - OpenMode.READ_ONLY(0o0):只讀打開(kāi)。 - OpenMode.WRITE_ONLY(0o1):只寫打開(kāi)。 - OpenMode.READ_WRITE(0o2):讀寫打開(kāi)。 給定如下功能選項(xiàng),以按位或的方式追加,默認(rèn)不給定任何額外選項(xiàng): - OpenMode.CREATE(0o100):若文件不存在,則創(chuàng)建文件。 - OpenMode.TRUNC(0o1000):如果文件存在且以只寫或讀寫的方式打開(kāi)文件,則將其長(zhǎng)度裁剪為零。 - OpenMode.APPEND(0o2000):以追加方式打開(kāi),后續(xù)寫將追加到文件末尾。 - OpenMode.NONBLOCK(0o4000):如果path指向FIFO、塊特殊文件或字符特殊文件,則本次打開(kāi)及后續(xù) IO 進(jìn)行非阻塞操作。 - OpenMode.DIR(0o200000):如果path不指向目錄,則出錯(cuò)。 - OpenMode.NOFOLLOW(0o400000):如果path指向符號(hào)鏈接,則出錯(cuò)。 - OpenMode.SYNC(0o4010000):以同步IO的方式打開(kāi)文件。 |
返回值:
類型 | 說(shuō)明 |
---|---|
打開(kāi)的File對(duì)象。 |
錯(cuò)誤碼:
接口拋出錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)基礎(chǔ)文件IO錯(cuò)誤碼。
示例:
- let filePath = pathDir + "/test.txt";
- let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
- console.info("file fd: " + file.fd);
- fs.closeSync(file);
read(fd: number, buffer: ArrayBuffer, options?: { offset?: number; length?: number; }): Promise<number>
從文件讀取數(shù)據(jù),使用Promise異步回調(diào)。
系統(tǒng)能力:SystemCapability.FileManagement.File.FileIO
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
fd | number | 是 | 已打開(kāi)的文件描述符。 |
buffer | ArrayBuffer | 是 | 用于保存讀取到的文件數(shù)據(jù)的緩沖區(qū)。 |
options | Object | 否 | 支持如下選項(xiàng): - offset,number類型,表示期望讀取文件的位置。可選,默認(rèn)從當(dāng)前位置開(kāi)始讀。 - length,number類型,表示期望讀取數(shù)據(jù)的長(zhǎng)度??蛇x,默認(rèn)緩沖區(qū)長(zhǎng)度。 |
返回值:
類型 | 說(shuō)明 |
---|---|
Promise<number> | Promise對(duì)象。返回讀取的結(jié)果。 |
錯(cuò)誤碼:
接口拋出錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)基礎(chǔ)文件IO錯(cuò)誤碼。
示例:
- let filePath = pathDir + "/test.txt";
- let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE);
- let buf = new ArrayBuffer(4096);
- fs.read(file.fd, buf).then((readLen) => {
- console.info("read file data succeed");
- console.info(String.fromCharCode.apply(null, new Uint8Array(buf.slice(0, readLen))));
- fs.closeSync(file);
- }).catch((err) => {
- console.error("read file data failed with error message: " + err.message + ", error code: " + err.code);
- });
read(fd: number, buffer: ArrayBuffer, options?: { offset?: number; length?: number; }, callback: AsyncCallback<number>): void
從文件讀取數(shù)據(jù),使用callback異步回調(diào)。
系統(tǒng)能力:SystemCapability.FileManagement.File.FileIO
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
fd | number | 是 | 已打開(kāi)的文件描述符。 |
buffer | ArrayBuffer | 是 | 用于保存讀取到的文件數(shù)據(jù)的緩沖區(qū)。 |
options | Object | 否 | 支持如下選項(xiàng): - offset,number類型,表示期望讀取文件的位置??蛇x,默認(rèn)從當(dāng)前位置開(kāi)始讀。 - length,number類型,表示期望讀取數(shù)據(jù)的長(zhǎng)度??蛇x,默認(rèn)緩沖區(qū)長(zhǎng)度。 |
callback | AsyncCallback<number> | 是 | 異步讀取數(shù)據(jù)之后的回調(diào)。 |
錯(cuò)誤碼:
接口拋出錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)基礎(chǔ)文件IO錯(cuò)誤碼。
示例:
- let filePath = pathDir + "/test.txt";
- let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE);
- let buf = new ArrayBuffer(4096);
- fs.read(file.fd, buf, (err, readLen) => {
- if (err) {
- console.error("read failed with error message: " + err.message + ", error code: " + err.code);
- } else {
- console.info("read file data succeed");
- console.info(String.fromCharCode.apply(null, new Uint8Array(buf.slice(0, readLen))));
- fs.closeSync(file);
- }
- });
readSync(fd: number, buffer: ArrayBuffer, options?: { offset?: number; length?: number; }): number
以同步方法從文件讀取數(shù)據(jù)。
系統(tǒng)能力:SystemCapability.FileManagement.File.FileIO
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
fd | number | 是 | 已打開(kāi)的文件描述符。 |
buffer | ArrayBuffer | 是 | 用于保存讀取到的文件數(shù)據(jù)的緩沖區(qū)。 |
options | Object | 否 | 支持如下選項(xiàng): - offset,number類型,表示期望讀取文件的位置??蛇x,默認(rèn)從當(dāng)前位置開(kāi)始讀。 - length,number類型,表示期望讀取數(shù)據(jù)的長(zhǎng)度??蛇x,默認(rèn)緩沖區(qū)長(zhǎng)度。 |
返回值:
類型 | 說(shuō)明 |
---|---|
number | 實(shí)際讀取的長(zhǎng)度。 |
錯(cuò)誤碼:
接口拋出錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)基礎(chǔ)文件IO錯(cuò)誤碼。
示例:
- let filePath = pathDir + "/test.txt";
- let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE);
- let buf = new ArrayBuffer(4096);
- let num = fs.readSync(file.fd, buf);
- fs.closeSync(file);
rmdir(path: string): Promise<void>
刪除整個(gè)目錄,使用Promise異步回調(diào)。
系統(tǒng)能力:SystemCapability.FileManagement.File.FileIO
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
path | string | 是 | 目錄的應(yīng)用沙箱路徑。 |
返回值:
類型 | 說(shuō)明 |
---|---|
Promise<void> | Promise對(duì)象。無(wú)返回值。 |
錯(cuò)誤碼:
接口拋出錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)基礎(chǔ)文件IO錯(cuò)誤碼。
示例:
- let dirPath = pathDir + "/testDir";
- fs.rmdir(dirPath).then(() => {
- console.info("rmdir succeed");
- }).catch((err) => {
- console.error("rmdir failed with error message: " + err.message + ", error code: " + err.code);
- });
rmdir(path: string, callback: AsyncCallback<void>): void
刪除整個(gè)目錄,使用callback異步回調(diào)。
系統(tǒng)能力:SystemCapability.FileManagement.File.FileIO
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
path | string | 是 | 目錄的應(yīng)用沙箱路徑。 |
callback | AsyncCallback<void> | 是 | 異步刪除目錄之后的回調(diào)。 |
錯(cuò)誤碼:
接口拋出錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)基礎(chǔ)文件IO錯(cuò)誤碼。
示例:
- let dirPath = pathDir + "/testDir";
- fs.rmdir(dirPath, (err) => {
- if (err) {
- console.error("rmdir failed with error message: " + err.message + ", error code: " + err.code);
- } else {
- console.info("rmdir succeed");
- }
- });
rmdirSync(path: string): void
以同步方法刪除目錄。
系統(tǒng)能力:SystemCapability.FileManagement.File.FileIO
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
path | string | 是 | 目錄的應(yīng)用沙箱路徑。 |
錯(cuò)誤碼:
接口拋出錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)基礎(chǔ)文件IO錯(cuò)誤碼。
示例:
- let dirPath = pathDir + "/testDir";
- fs.rmdirSync(dirPath);
unlink(path: string): Promise<void>
刪除單個(gè)文件,使用Promise異步回調(diào)。
系統(tǒng)能力:SystemCapability.FileManagement.File.FileIO
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
path | string | 是 | 文件的應(yīng)用沙箱路徑。 |
返回值:
類型 | 說(shuō)明 |
---|---|
Promise<void> | Promise對(duì)象。無(wú)返回值。 |
錯(cuò)誤碼:
接口拋出錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)基礎(chǔ)文件IO錯(cuò)誤碼。
示例:
- let filePath = pathDir + "/test.txt";
- fs.unlink(filePath).then(() => {
- console.info("remove file succeed");
- }).catch((err) => {
- console.error("remove file failed with error message: " + err.message + ", error code: " + err.codeor);
- });
unlink(path: string, callback: AsyncCallback<void>): void
刪除文件,使用callback異步回調(diào)。
系統(tǒng)能力:SystemCapability.FileManagement.File.FileIO
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
path | string | 是 | 文件的應(yīng)用沙箱路徑。 |
callback | AsyncCallback<void> | 是 | 異步刪除文件之后的回調(diào)。 |
錯(cuò)誤碼:
接口拋出錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)基礎(chǔ)文件IO錯(cuò)誤碼。
示例:
- let filePath = pathDir + "/test.txt";
- fs.unlink(filePath, (err) => {
- if (err) {
- console.error("remove file failed with error message: " + err.message + ", error code: " + err.code);
- } else {
- console.info("remove file succeed");
- }
- });
unlinkSync(path: string): void
以同步方法刪除文件。
系統(tǒng)能力:SystemCapability.FileManagement.File.FileIO
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
path | string | 是 | 文件的應(yīng)用沙箱路徑。 |
錯(cuò)誤碼:
接口拋出錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)基礎(chǔ)文件IO錯(cuò)誤碼。
示例:
- let filePath = pathDir + "/test.txt";
- fs.unlinkSync(filePath);
write(fd: number, buffer: ArrayBuffer|string, options?: { offset?: number; length?: number; encoding?: string; }): Promise<number>
將數(shù)據(jù)寫入文件,使用Promise異步回調(diào)。
系統(tǒng)能力:SystemCapability.FileManagement.File.FileIO
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
fd | number | 是 | 已打開(kāi)的文件描述符。 |
buffer | ArrayBuffer|string | 是 | 待寫入文件的數(shù)據(jù),可來(lái)自緩沖區(qū)或字符串。 |
options | Object | 否 | 支持如下選項(xiàng): - offset,number類型,表示期望寫入文件的位置。可選,默認(rèn)從當(dāng)前位置開(kāi)始寫。 - length,number類型,表示期望寫入數(shù)據(jù)的長(zhǎng)度??蛇x,默認(rèn)緩沖區(qū)長(zhǎng)度。 - encoding,string類型,當(dāng)數(shù)據(jù)是string類型時(shí)有效,表示數(shù)據(jù)的編碼方式,默認(rèn) 'utf-8'。當(dāng)前僅支持 'utf-8'。 |
返回值:
類型 | 說(shuō)明 |
---|---|
Promise<number> | Promise對(duì)象。返回實(shí)際寫入的長(zhǎng)度。 |
錯(cuò)誤碼:
接口拋出錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)基礎(chǔ)文件IO錯(cuò)誤碼。
示例:
- let filePath = pathDir + "/test.txt";
- let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
- fs.write(file.fd, "hello, world").then((writeLen) => {
- console.info("write data to file succeed and size is:" + writeLen);
- fs.closeSync(file);
- }).catch((err) => {
- console.error("write data to file failed with error message: " + err.message + ", error code: " + err.code);
- });
write(fd: number, buffer: ArrayBuffer|string, options?: { offset?: number; length?: number; encoding?: string; }, callback: AsyncCallback<number>): void
將數(shù)據(jù)寫入文件,使用callback異步回調(diào)。
系統(tǒng)能力:SystemCapability.FileManagement.File.FileIO
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
fd | number | 是 | 已打開(kāi)的文件描述符。 |
buffer | ArrayBuffer|string | 是 | 待寫入文件的數(shù)據(jù),可來(lái)自緩沖區(qū)或字符串。 |
options | Object | 否 | 支持如下選項(xiàng): - offset,number類型,表示期望寫入文件的位置??蛇x,默認(rèn)從當(dāng)前位置開(kāi)始寫。 - length,number類型,表示期望寫入數(shù)據(jù)的長(zhǎng)度??蛇x,默認(rèn)緩沖區(qū)長(zhǎng)度。 - encoding,string類型,當(dāng)數(shù)據(jù)是string類型時(shí)有效,表示數(shù)據(jù)的編碼方式,默認(rèn) 'utf-8'。當(dāng)前僅支持 'utf-8'。 |
callback | AsyncCallback<number> | 是 | 異步將數(shù)據(jù)寫入完成后執(zhí)行的回調(diào)函數(shù)。 |
錯(cuò)誤碼:
接口拋出錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)基礎(chǔ)文件IO錯(cuò)誤碼。
示例:
- let filePath = pathDir + "/test.txt";
- let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
- fs.write(file.fd, "hello, world", (err, writeLen) => {
- if (err) {
- console.error("write failed with error message: " + err.message + ", error code: " + err.code);
- } else {
- console.info("write data to file succeed and size is:" + writeLen);
- fs.closeSync(file);
- }
- });
writeSync(fd: number, buffer: ArrayBuffer|string, options?: { offset?: number; length?: number; encoding?: string; }): number
以同步方法將數(shù)據(jù)寫入文件。
系統(tǒng)能力:SystemCapability.FileManagement.File.FileIO
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
fd | number | 是 | 已打開(kāi)的文件描述符。 |
buffer | ArrayBuffer|string | 是 | 待寫入文件的數(shù)據(jù),可來(lái)自緩沖區(qū)或字符串。 |
options | Object | 否 | 支持如下選項(xiàng): - offset,number類型,表示期望寫入文件的位置。可選,默認(rèn)從當(dāng)前位置開(kāi)始寫。 - length,number類型,表示期望寫入數(shù)據(jù)的長(zhǎng)度。可選,默認(rèn)緩沖區(qū)長(zhǎng)度。 - encoding,string類型,當(dāng)數(shù)據(jù)是string類型時(shí)有效,表示數(shù)據(jù)的編碼方式,默認(rèn) 'utf-8'。當(dāng)前僅支持 'utf-8'。 |
返回值:
類型 | 說(shuō)明 |
---|---|
number | 實(shí)際寫入的長(zhǎng)度。 |
錯(cuò)誤碼:
接口拋出錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)基礎(chǔ)文件IO錯(cuò)誤碼。
示例:
- let filePath = pathDir + "/test.txt";
- let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
- let writeLen = fs.writeSync(file.fd, "hello, world");
- console.info("write data to file succeed and size is:" + writeLen);
- fs.closeSync(file);
truncate(file: string|number, len?: number): Promise<void>
截?cái)辔募?,使用Promise異步回調(diào)。
系統(tǒng)能力:SystemCapability.FileManagement.File.FileIO
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
file | string|number | 是 | 文件的應(yīng)用沙箱路徑或已打開(kāi)的文件描述符fd。 |
len | number | 否 | 文件截?cái)嗪蟮拈L(zhǎng)度,以字節(jié)為單位。默認(rèn)為0。 |
返回值:
類型 | 說(shuō)明 |
---|---|
Promise<void> | Promise對(duì)象。無(wú)返回值。 |
錯(cuò)誤碼:
接口拋出錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)基礎(chǔ)文件IO錯(cuò)誤碼。
示例:
- let filePath = pathDir + "/test.txt";
- let len = 5;
- fs.truncate(filePath, len).then(() => {
- console.info("truncate file succeed");
- }).catch((err) => {
- console.error("truncate file failed with error message: " + err.message + ", error code: " + err.code);
- });
truncate(file: string|number, len?: number, callback: AsyncCallback<void>): void
截?cái)辔募?,使用callback異步回調(diào)。
系統(tǒng)能力:SystemCapability.FileManagement.File.FileIO
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
file | string|number | 是 | 文件的應(yīng)用沙箱路徑或已打開(kāi)的文件描述符fd。 |
len | number | 否 | 文件截?cái)嗪蟮拈L(zhǎng)度,以字節(jié)為單位。默認(rèn)為0。 |
callback | AsyncCallback<void> | 是 | 回調(diào)函數(shù),本調(diào)用無(wú)返回值。 |
錯(cuò)誤碼:
接口拋出錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)基礎(chǔ)文件IO錯(cuò)誤碼。
示例:
- let filePath = pathDir + "/test.txt";
- let len = 5;
- fs.truncate(filePath, len, (err) => {
- if (err) {
- console.error("truncate failed with error message: " + err.message + ", error code: " + err.code);
- } else {
- console.info("truncate success");
- }
- });
truncateSync(file: string|number, len?: number): void
以同步方法截?cái)辔募?/p>
系統(tǒng)能力:SystemCapability.FileManagement.File.FileIO
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
file | string|number | 是 | 文件的應(yīng)用沙箱路徑或已打開(kāi)的文件描述符fd。 |
len | number | 否 | 文件截?cái)嗪蟮拈L(zhǎng)度,以字節(jié)為單位。默認(rèn)為0。 |
錯(cuò)誤碼:
接口拋出錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)基礎(chǔ)文件IO錯(cuò)誤碼。
示例:
- let filePath = pathDir + "/test.txt";
- let len = 5;
- fs.truncateSync(filePath, len);
readText(filePath: string, options?: { offset?: number; length?: number; encoding?: string; }): Promise<string>
基于文本方式讀取文件(即直接讀取文件的文本內(nèi)容),使用Promise異步回調(diào)。
系統(tǒng)能力:SystemCapability.FileManagement.File.FileIO
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
filePath | string | 是 | 文件的應(yīng)用沙箱路徑。 |
options | Object | 否 | 支持如下選項(xiàng): - offset,number類型,表示期望讀取文件的位置??蛇x,默認(rèn)從當(dāng)前位置開(kāi)始讀取。 - length,number類型,表示期望讀取數(shù)據(jù)的長(zhǎng)度??蛇x,默認(rèn)文件長(zhǎng)度。 - encoding,string類型,當(dāng)數(shù)據(jù)是 string 類型時(shí)有效,表示數(shù)據(jù)的編碼方式,默認(rèn) 'utf-8',僅支持 'utf-8'。 |
返回值:
類型 | 說(shuō)明 |
---|---|
Promise<string> | Promise對(duì)象。返回讀取文件的內(nèi)容。 |
錯(cuò)誤碼:
接口拋出錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)基礎(chǔ)文件IO錯(cuò)誤碼。
示例:
- let filePath = pathDir + "/test.txt";
- fs.readText(filePath).then((str) => {
- console.info("readText succeed:" + str);
- }).catch((err) => {
- console.error("readText failed with error message: " + err.message + ", error code: " + err.code);
- });
readText(filePath: string, options?: { offset?: number; length?: number; encoding?: string; }, callback: AsyncCallback<string>): void
基于文本方式讀取文件(即直接讀取文件的文本內(nèi)容),使用callback異步回調(diào)。
系統(tǒng)能力:SystemCapability.FileManagement.File.FileIO
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
filePath | string | 是 | 文件的應(yīng)用沙箱路徑。 |
options | Object | 否 | 支持如下選項(xiàng): - offset,number類型,表示期望讀取文件的位置??蛇x,默認(rèn)從當(dāng)前位置開(kāi)始讀取。 - length,number類型,表示期望讀取數(shù)據(jù)的長(zhǎng)度??蛇x,默認(rèn)文件長(zhǎng)度。 - encoding,string類型,表示數(shù)據(jù)的編碼方式,默認(rèn) 'utf-8',僅支持 'utf-8'。 |
callback | AsyncCallback<string> | 是 | 回調(diào)函數(shù),返回讀取文件的內(nèi)容。 |
錯(cuò)誤碼:
接口拋出錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)基礎(chǔ)文件IO錯(cuò)誤碼。
示例:
- let filePath = pathDir + "/test.txt";
- fs.readText(filePath, { offset: 1, encoding: 'utf-8' }, (err, str) => {
- if (err) {
- console.error("read text failed with error message: " + err.message + ", error code: " + err.code);
- } else {
- console.info("readText succeed:" + str);
- }
- });
readTextSync(filePath: string, options?: { offset?: number; length?: number; encoding?: string; }): string
以同步方法基于文本方式讀取文件(即直接讀取文件的文本內(nèi)容)。
系統(tǒng)能力:SystemCapability.FileManagement.File.FileIO
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
filePath | string | 是 | 文件的應(yīng)用沙箱路徑。 |
options | Object | 否 | 支持如下選項(xiàng): - offset,number類型,表示期望讀取文件的位置??蛇x,默認(rèn)從當(dāng)前位置開(kāi)始讀取。 - length,number類型,表示期望讀取數(shù)據(jù)的長(zhǎng)度??蛇x,默認(rèn)文件長(zhǎng)度。 - encoding,string類型,當(dāng)數(shù)據(jù)是 string 類型時(shí)有效,表示數(shù)據(jù)的編碼方式,默認(rèn) 'utf-8',僅支持 'utf-8'。 |
返回值:
類型 | 說(shuō)明 |
---|---|
string | 返回讀取文件的內(nèi)容。 |
錯(cuò)誤碼:
接口拋出錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)基礎(chǔ)文件IO錯(cuò)誤碼。
示例:
- let filePath = pathDir + "/test.txt";
- let str = fs.readTextSync(filePath, {offset: 1, length: 3});
- console.info("readText succeed:" + str);
lstat(path: string): Promise<Stat>
獲取鏈接文件信息,使用Promise異步回調(diào)。
系統(tǒng)能力:SystemCapability.FileManagement.File.FileIO
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
path | string | 是 | 文件的應(yīng)用沙箱路徑。 |
返回值:
類型 | 說(shuō)明 |
---|---|
Promise<Stat> | promise對(duì)象,返回文件對(duì)象,表示文件的具體信息,詳情見(jiàn)stat。 |
錯(cuò)誤碼:
接口拋出錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)基礎(chǔ)文件IO錯(cuò)誤碼。
示例:
- let filePath = pathDir + "/test.txt";
- fs.lstat(filePath).then((stat) => {
- console.info("get link status succeed, the size of file is" + stat.size);
- }).catch((err) => {
- console.error("get link status failed with error message: " + err.message + ", error code: " + err.code);
- });
lstat(path: string, callback: AsyncCallback<Stat>): void
獲取鏈接文件信息,使用callback異步回調(diào)。
系統(tǒng)能力:SystemCapability.FileManagement.File.FileIO
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
path | string | 是 | 文件的應(yīng)用沙箱路徑。 |
callback | AsyncCallback<Stat> | 是 | 回調(diào)函數(shù),返回文件的具體信息。 |
錯(cuò)誤碼:
接口拋出錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)基礎(chǔ)文件IO錯(cuò)誤碼。
示例:
- let filePath = pathDir + "/test.txt";
- fs.lstat(filePath, (err, stat) => {
- if (err) {
- console.error("lstat failed with error message: " + err.message + ", error code: " + err.code);
- } else {
- console.info("get link status succeed, the size of file is" + stat.size);
- }
- });
lstatSync(path: string): Stat
以同步方法獲取鏈接文件信息。
系統(tǒng)能力:SystemCapability.FileManagement.File.FileIO
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
path | string | 是 | 文件的應(yīng)用沙箱路徑。 |
返回值:
類型 | 說(shuō)明 |
---|---|
表示文件的具體信息。 |
錯(cuò)誤碼:
接口拋出錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)基礎(chǔ)文件IO錯(cuò)誤碼。
示例:
- let filePath = pathDir + "/test.txt";
- let stat = fs.lstatSync(filePath);
rename(oldPath: string, newPath: string): Promise<void>
重命名文件或文件夾,使用Promise異步回調(diào)。
系統(tǒng)能力:SystemCapability.FileManagement.File.FileIO
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
oldPath | string | 是 | 文件的應(yīng)用沙箱原路徑。 |
newPath | string | 是 | 文件的應(yīng)用沙箱新路徑。 |
返回值:
類型 | 說(shuō)明 |
---|---|
Promise<void> | Promise對(duì)象。無(wú)返回值。 |
錯(cuò)誤碼:
接口拋出錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)基礎(chǔ)文件IO錯(cuò)誤碼。
示例:
- let srcFile = pathDir + "/test.txt";
- let dstFile = pathDir + "/new.txt";
- fs.rename(srcFile, dstFile).then(() => {
- console.info("rename succeed");
- }).catch((err) => {
- console.error("rename failed with error message: " + err.message + ", error code: " + err.code);
- });
rename(oldPath: string, newPath: string, callback: AsyncCallback<void>): void
重命名文件或文件夾,使用callback異步回調(diào)。
系統(tǒng)能力:SystemCapability.FileManagement.File.FileIO
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
oldPath | string | 是 | 文件的應(yīng)用沙箱原路徑。 |
newPath | string | 是 | 文件的應(yīng)用沙箱新路徑。 |
callback | AsyncCallback<void> | 是 | 異步重命名文件之后的回調(diào)。 |
錯(cuò)誤碼:
接口拋出錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)基礎(chǔ)文件IO錯(cuò)誤碼。
示例:
- let srcFile = pathDir + "/test.txt";
- let dstFile = pathDir + "/new.txt";
- fs.rename(srcFile, dstFile, (err) => {
- if (err) {
- console.error("rename failed with error message: " + err.message + ", error code: " + err.code);
- } else {
- console.info("rename success");
- }
- });
renameSync(oldPath: string, newPath: string): void
以同步方法重命名文件或文件夾。
系統(tǒng)能力:SystemCapability.FileManagement.File.FileIO
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
oldPath | string | 是 | 文件的應(yīng)用沙箱原路徑。 |
newPath | string | 是 | 文件的應(yīng)用沙箱新路徑。 |
錯(cuò)誤碼:
接口拋出錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)基礎(chǔ)文件IO錯(cuò)誤碼。
示例:
- let srcFile = pathDir + "/test.txt";
- let dstFile = pathDir + "/new.txt";
- fs.renameSync(srcFile, dstFile);
fsync(fd: number): Promise<void>
同步文件數(shù)據(jù),使用Promise異步回調(diào)。
系統(tǒng)能力:SystemCapability.FileManagement.File.FileIO
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
fd | number | 是 | 已打開(kāi)的文件描述符。 |
返回值:
類型 | 說(shuō)明 |
---|---|
Promise<void> | Promise對(duì)象。無(wú)返回值。 |
錯(cuò)誤碼:
接口拋出錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)基礎(chǔ)文件IO錯(cuò)誤碼。
示例:
- let filePath = pathDir + "/test.txt";
- let file = fs.openSync(filePath);
- fs.fsync(file.fd).then(() => {
- console.info("sync data succeed");
- }).catch((err) => {
- console.error("sync data failed with error message: " + err.message + ", error code: " + err.code);
- });
fsync(fd: number, callback: AsyncCallback<void>): void
同步文件數(shù)據(jù),使用callback異步回調(diào)。
系統(tǒng)能力:SystemCapability.FileManagement.File.FileIO
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
fd | number | 是 | 已打開(kāi)的文件描述符。 |
Callback | AsyncCallback<void> | 是 | 異步將文件數(shù)據(jù)同步之后的回調(diào)。 |
錯(cuò)誤碼:
接口拋出錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)基礎(chǔ)文件IO錯(cuò)誤碼。
示例:
- let filePath = pathDir + "/test.txt";
- let file = fs.openSync(filePath);
- fs.fsync(file.fd, (err) => {
- if (err) {
- console.error("fsync failed with error message: " + err.message + ", error code: " + err.code);
- } else {
- console.info("fsync success");
- fs.closeSync(file);
- }
- });
fsyncSync(fd: number): void
以同步方法同步文件數(shù)據(jù)。
系統(tǒng)能力:SystemCapability.FileManagement.File.FileIO
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
fd | number | 是 | 已打開(kāi)的文件描述符。 |
錯(cuò)誤碼:
接口拋出錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)基礎(chǔ)文件IO錯(cuò)誤碼。
示例:
- let filePath = pathDir + "/test.txt";
- let file = fs.openSync(filePath);
- fs.fsyncSync(file.fd);
- fs.closeSync(file);
fdatasync(fd: number): Promise<void>
實(shí)現(xiàn)文件內(nèi)容數(shù)據(jù)同步,使用Promise異步回調(diào)。
系統(tǒng)能力:SystemCapability.FileManagement.File.FileIO
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
fd | number | 是 | 已打開(kāi)的文件描述符。 |
返回值:
類型 | 說(shuō)明 |
---|---|
Promise<void> | Promise對(duì)象。無(wú)返回值。 |
錯(cuò)誤碼:
接口拋出錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)基礎(chǔ)文件IO錯(cuò)誤碼。
示例:
- let filePath = pathDir + "/test.txt";
- let file = fs.openSync(filePath);
- fs.fdatasync(file.fd).then((err) => {
- console.info("sync data succeed");
- fs.closeSync(file);
- }).catch((err) => {
- console.error("sync data failed with error message: " + err.message + ", error code: " + err.code);
- });
fdatasync(fd: number, callback: AsyncCallback<void>): void
實(shí)現(xiàn)文件內(nèi)容數(shù)據(jù)同步,使用callback異步回調(diào)。
系統(tǒng)能力:SystemCapability.FileManagement.File.FileIO
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
fd | number | 是 | 已打開(kāi)的文件描述符。 |
callback | AsyncCallback<void> | 是 | 異步將文件內(nèi)容數(shù)據(jù)同步之后的回調(diào)。 |
錯(cuò)誤碼:
接口拋出錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)基礎(chǔ)文件IO錯(cuò)誤碼。
示例:
- let filePath = pathDir + "/test.txt";
- let file = fs.openSync(filePath);
- fs.fdatasync (file.fd, (err) => {
- if (err) {
- console.error("fdatasync failed with error message: " + err.message + ", error code: " + err.code);
- } else {
- console.info("fdatasync success");
- fs.closeSync(file);
- }
- });
fdatasyncSync(fd: number): void
以同步方法實(shí)現(xiàn)文件內(nèi)容數(shù)據(jù)同步。
系統(tǒng)能力:SystemCapability.FileManagement.File.FileIO
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
fd | number | 是 | 已打開(kāi)的文件描述符。 |
錯(cuò)誤碼:
接口拋出錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)基礎(chǔ)文件IO錯(cuò)誤碼。
示例:
- let filePath = pathDir + "/test.txt";
- let file = fs.openSync(filePath);
- let stat = fs.fdatasyncSync(file.fd);
- fs.closeSync(file);
symlink(target: string, srcPath: string): Promise<void>
基于文件路徑創(chuàng)建符號(hào)鏈接,使用Promise異步回調(diào)。
系統(tǒng)能力:SystemCapability.FileManagement.File.FileIO
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
target | string | 是 | 源文件的應(yīng)用沙箱路徑。 |
srcPath | string | 是 | 符號(hào)鏈接文件的應(yīng)用沙箱路徑。 |
返回值:
類型 | 說(shuō)明 |
---|---|
Promise<void> | Promise對(duì)象。無(wú)返回值。 |
錯(cuò)誤碼:
接口拋出錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)基礎(chǔ)文件IO錯(cuò)誤碼。
示例:
- let srcFile = pathDir + "/test.txt";
- let dstFile = pathDir + "/test";
- fs.symlink(srcFile, dstFile).then(() => {
- console.info("symlink succeed");
- }).catch((err) => {
- console.error("symlink failed with error message: " + err.message + ", error code: " + err.code);
- });
symlink(target: string, srcPath: string, callback: AsyncCallback<void>): void
基于文件路徑創(chuàng)建符號(hào)鏈接,使用callback異步回調(diào)。
系統(tǒng)能力:SystemCapability.FileManagement.File.FileIO
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
target | string | 是 | 源文件的應(yīng)用沙箱路徑。 |
srcPath | string | 是 | 符號(hào)鏈接文件的應(yīng)用沙箱路徑。 |
callback | AsyncCallback<void> | 是 | 異步創(chuàng)建符號(hào)鏈接信息之后的回調(diào)。 |
錯(cuò)誤碼:
接口拋出錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)基礎(chǔ)文件IO錯(cuò)誤碼。
示例:
- let srcFile = pathDir + "/test.txt";
- let dstFile = pathDir + "/test";
- fs.symlink(srcFile, dstFile, (err) => {
- if (err) {
- console.error("symlink failed with error message: " + err.message + ", error code: " + err.code);
- } else {
- console.info("symlink success");
- }
- });
symlinkSync(target: string, srcPath: string): void
以同步的方法基于文件路徑創(chuàng)建符號(hào)鏈接。
系統(tǒng)能力:SystemCapability.FileManagement.File.FileIO
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
target | string | 是 | 源文件的應(yīng)用沙箱路徑。 |
srcPath | string | 是 | 符號(hào)鏈接文件的應(yīng)用沙箱路徑。 |
錯(cuò)誤碼:
接口拋出錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)基礎(chǔ)文件IO錯(cuò)誤碼。
示例:
- let srcFile = pathDir + "/test.txt";
- let dstFile = pathDir + "/test";
- fs.symlinkSync(srcFile, dstFile);
listFile(path: string, options?: {
recursion?: boolean;
listNum?: number;
filter?: Filter;
}): Promise<string[]>
列出文件夾下所有文件名,支持遞歸列出所有文件名(包含子目錄下),支持文件過(guò)濾,使用Promise異步回調(diào)。
系統(tǒng)能力:SystemCapability.FileManagement.File.FileIO
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
path | string | 是 | 文件夾的應(yīng)用沙箱路徑。 |
options | Object | 否 | 文件過(guò)濾選項(xiàng)。默認(rèn)不進(jìn)行過(guò)濾。 |
options參數(shù)說(shuō)明:
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
recursion | boolean | 否 | 是否遞歸子目錄下文件名,默認(rèn)為false。 |
listNum | number | 否 | 列出文件名數(shù)量。當(dāng)設(shè)置0時(shí),列出所有文件,默認(rèn)為0。 |
filter | 否 | 文件過(guò)濾選項(xiàng)。當(dāng)前僅支持后綴名匹配、文件名模糊查詢、文件大小過(guò)濾、最近修改時(shí)間過(guò)濾。 |
返回值:
類型 | 說(shuō)明 |
---|---|
Promise<string[]> | Promise對(duì)象。返回文件名數(shù)組。 |
錯(cuò)誤碼:
接口拋出錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)基礎(chǔ)文件IO錯(cuò)誤碼。
示例:
- let options = {
- "recursion": false,
- "listNum": 0,
- "filter": {
- "suffix": [".png", ".jpg", ".jpeg"],
- "displayName": ["*abc", "efg*"],
- "fileSizeOver": 1024,
- "lastModifiedAfter": new Date().getTime(),
- }
- };
- fs.listFile(pathDir, options).then((filenames) => {
- console.info("listFile succeed");
- for (let i = 0; i < filenames.length; i++) {
- console.info("fileName: %s", filenames[i]);
- }
- }).catch((err) => {
- console.error("list file failed with error message: " + err.message + ", error code: " + err.code);
- });
listFile(path: string, options?: {
recursion?: boolean;
listNum?: number;
filter?: Filter;
}, callback: AsyncCallback<string[]>): void
列出文件夾下所有文件名,支持遞歸列出所有文件名(包含子目錄下),支持文件過(guò)濾,使用Callback異步回調(diào)。
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
path | string | 是 | 文件夾的應(yīng)用沙箱路徑。 |
options | Object | 否 | 文件過(guò)濾選項(xiàng)。默認(rèn)不進(jìn)行過(guò)濾。 |
callback | AsyncCallback<string[]> | 是 | 異步列出文件名數(shù)組之后的回調(diào)。 |
options參數(shù)說(shuō)明:
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
recursion | boolean | 否 | 是否遞歸子目錄下文件名,默認(rèn)為false。 |
listNum | number | 否 | 列出文件名數(shù)量。當(dāng)設(shè)置0時(shí),列出所有文件,默認(rèn)為0。 |
filter | 否 | 文件過(guò)濾選項(xiàng)。當(dāng)前僅支持后綴名匹配、文件名模糊查詢、文件大小過(guò)濾、最近修改時(shí)間過(guò)濾。 |
錯(cuò)誤碼:
接口拋出錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)基礎(chǔ)文件IO錯(cuò)誤碼。
示例:
- let options = {
- "recursion": false,
- "listNum": 0,
- "filter": {
- "suffix": [".png", ".jpg", ".jpeg"],
- "displayName": ["*abc", "efg*"],
- "fileSizeOver": 1024,
- "lastModifiedAfter": new Date().getTime(),
- }
- };
- fs.listFile(pathDir, options, (err, filenames) => {
- if (err) {
- console.error("list file failed with error message: " + err.message + ", error code: " + err.code);
- } else {
- console.info("listFile succeed");
- for (let i = 0; i < filenames.length; i++) {
- console.info("filename: %s", filenames[i]);
- }
- }
- });
listFileSync(path: string, options?: {
recursion?: boolean;
listNum?: number;
filter?: Filter;
}): string[];
以同步方式列出文件夾下所有文件名,支持遞歸列出所有文件名(包含子目錄下),支持文件過(guò)濾。
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
path | string | 是 | 文件夾的應(yīng)用沙箱路徑。 |
options | Object | 否 | 文件過(guò)濾選項(xiàng)。默認(rèn)不進(jìn)行過(guò)濾。 |
options參數(shù)說(shuō)明:
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
recursion | boolean | 否 | 是否遞歸子目錄下文件名,默認(rèn)為false。 |
listNum | number | 否 | 列出文件名數(shù)量。當(dāng)設(shè)置0時(shí),列出所有文件,默認(rèn)為0。 |
filter | 否 | 文件過(guò)濾選項(xiàng)。當(dāng)前僅支持后綴名匹配、文件名模糊查詢、文件大小過(guò)濾、最近修改時(shí)間過(guò)濾。 |
返回值:
類型 | 說(shuō)明 |
---|---|
string[] | 返回文件名數(shù)組。 |
錯(cuò)誤碼:
接口拋出錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)基礎(chǔ)文件IO錯(cuò)誤碼。
示例:
- let options = {
- "recursion": false,
- "listNum": 0,
- "filter": {
- "suffix": [".png", ".jpg", ".jpeg"],
- "displayName": ["*abc", "efg*"],
- "fileSizeOver": 1024,
- "lastModifiedAfter": new Date().getTime(),
- }
- };
- let filenames = fs.listFileSync(pathDir, options);
- console.info("listFile succeed");
- for (let i = 0; i < filenames.length; i++) {
- console.info("filename: %s", filenames[i]);
- }
moveFile(src: string, dest: string, mode?: number): Promise<void>;
移動(dòng)文件,使用Promise異步回調(diào)。
系統(tǒng)能力:SystemCapability.FileManagement.File.FileIO
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
src | string | 是 | 源文件的應(yīng)用沙箱路徑。 |
dest | string | 是 | 目的文件的應(yīng)用沙箱路徑。 |
mode | number | 否 | 移動(dòng)模式。若mode為0,移動(dòng)位置存在同名文件時(shí),強(qiáng)制移動(dòng)覆蓋。若mode為1,移動(dòng)位置存在同名文件時(shí),拋出異常。默認(rèn)為0。 |
錯(cuò)誤碼:
接口拋出錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)基礎(chǔ)文件IO錯(cuò)誤碼。
示例:
- let srcPath = pathDir + "/source.txt";
- let destPath = pathDir + "/dest.txt";
- fs.moveFile(srcPath, destPath, 0).then(() => {
- console.info("move file succeed");
- }).catch((err) => {
- console.error("move file failed with error message: " + err.message + ", error code: " + err.code);
- });
moveFile(src: string, dest: string, mode?: number, callback: AsyncCallback<void>): void;
移動(dòng)文件,使用Callback異步回調(diào)。
系統(tǒng)能力:SystemCapability.FileManagement.File.FileIO
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
src | string | 是 | 源文件的應(yīng)用沙箱路徑。 |
dest | string | 是 | 目的文件的應(yīng)用沙箱路徑。 |
mode | number | 否 | 移動(dòng)模式。若mode為0,移動(dòng)位置存在同名文件時(shí),強(qiáng)制移動(dòng)覆蓋。若mode為1,移動(dòng)位置存在同名文件時(shí),拋出異常。默認(rèn)為0。 |
callback | AsyncCallback<void> | 是 | 異步移動(dòng)文件之后的回調(diào)。 |
錯(cuò)誤碼:
接口拋出錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)基礎(chǔ)文件IO錯(cuò)誤碼。
示例:
- let srcPath = pathDir + "/source.txt";
- let destPath = pathDir + "/dest.txt";
- fs.moveFile(srcPath, destPath, 0, (err) => {
- if (err) {
- console.error("move file failed with error message: " + err.message + ", error code: " + err.code);
- } else {
- console.info("move file succeed");
- }
- });
moveFile(src: string, dest: string, mode?: number): void;
以同步方式移動(dòng)文件。
系統(tǒng)能力:SystemCapability.FileManagement.File.FileIO
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
src | string | 是 | 源文件的應(yīng)用沙箱路徑。 |
dest | string | 是 | 目的文件的應(yīng)用沙箱路徑。 |
mode | number | 否 | 移動(dòng)模式。若mode為0,移動(dòng)位置存在同名文件時(shí),強(qiáng)制移動(dòng)覆蓋。若mode為1,移動(dòng)位置存在同名文件時(shí),拋出異常。默認(rèn)為0。 |
錯(cuò)誤碼:
接口拋出錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)基礎(chǔ)文件IO錯(cuò)誤碼。
示例:
- let srcPath = pathDir + "/source.txt";
- let destPath = pathDir + "/dest.txt";
- fs.moveFileSync(srcPath, destPath, 0);
- console.info("move file succeed");
mkdtemp(prefix: string): Promise<string>
創(chuàng)建臨時(shí)目錄,使用Promise異步回調(diào)。
系統(tǒng)能力:SystemCapability.FileManagement.File.FileIO
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
prefix | string | 是 | 用隨機(jī)產(chǎn)生的字符串替換以“XXXXXX”結(jié)尾目錄路徑。 |
返回值:
類型 | 說(shuō)明 |
---|---|
Promise<string> | Promise對(duì)象。返回生成的唯一目錄路徑。 |
錯(cuò)誤碼:
接口拋出錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)基礎(chǔ)文件IO錯(cuò)誤碼。
示例:
- fs.mkdtemp(pathDir + "/XXXXXX").then((pathDir) => {
- console.info("mkdtemp succeed:" + pathDir);
- }).catch((err) => {
- console.error("mkdtemp failed with error message: " + err.message + ", error code: " + err.code);
- });
mkdtemp(prefix: string, callback: AsyncCallback<string>): void
創(chuàng)建臨時(shí)目錄,使用callback異步回調(diào)。
系統(tǒng)能力:SystemCapability.FileManagement.File.FileIO
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
prefix | string | 是 | 用隨機(jī)產(chǎn)生的字符串替換以“XXXXXX”結(jié)尾目錄路徑。 |
callback | AsyncCallback<string> | 是 | 異步創(chuàng)建臨時(shí)目錄之后的回調(diào)。 |
錯(cuò)誤碼:
接口拋出錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)基礎(chǔ)文件IO錯(cuò)誤碼。
示例:
- fs.mkdtemp(pathDir + "/XXXXXX", (err, res) => {
- if (err) {
- console.error("mkdtemp failed with error message: " + err.message + ", error code: " + err.code);
- } else {
- console.info("mkdtemp success");
- }
- });
mkdtempSync(prefix: string): string
以同步的方法創(chuàng)建臨時(shí)目錄。
系統(tǒng)能力:SystemCapability.FileManagement.File.FileIO
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
prefix | string | 是 | 用隨機(jī)產(chǎn)生的字符串替換以“XXXXXX”結(jié)尾目錄路徑。 |
返回值:
類型 | 說(shuō)明 |
---|---|
string | 產(chǎn)生的唯一目錄路徑。 |
錯(cuò)誤碼:
接口拋出錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)基礎(chǔ)文件IO錯(cuò)誤碼。
示例:
- let res = fs.mkdtempSync(pathDir + "/XXXXXX");
createStream(path: string, mode: string): Promise<Stream>
基于文件路徑打開(kāi)文件流,使用Promise異步回調(diào)。
系統(tǒng)能力:SystemCapability.FileManagement.File.FileIO
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
path | string | 是 | 文件的應(yīng)用沙箱路徑。 |
mode | string | 是 | - r:打開(kāi)只讀文件,該文件必須存在。 - r+:打開(kāi)可讀寫的文件,該文件必須存在。 - w:打開(kāi)只寫文件,若文件存在則文件長(zhǎng)度清0,即該文件內(nèi)容會(huì)消失。若文件不存在則建立該文件。 - w+:打開(kāi)可讀寫文件,若文件存在則文件長(zhǎng)度清0,即該文件內(nèi)容會(huì)消失。若文件不存在則建立該文件。 - a:以附加的方式打開(kāi)只寫文件。若文件不存在,則會(huì)建立該文件,如果文件存在,寫入的數(shù)據(jù)會(huì)被加到文件尾,即文件原先的內(nèi)容會(huì)被保留。 - a+:以附加方式打開(kāi)可讀寫的文件。若文件不存在,則會(huì)建立該文件,如果文件存在,寫入的數(shù)據(jù)會(huì)被加到文件尾后,即文件原先的內(nèi)容會(huì)被保留。 |
返回值:
類型 | 說(shuō)明 |
---|---|
Promise<Stream> | Promise對(duì)象。返回文件流的結(jié)果。 |
錯(cuò)誤碼:
接口拋出錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)基礎(chǔ)文件IO錯(cuò)誤碼。
示例:
- let filePath = pathDir + "/test.txt";
- fs.createStream(filePath, "r+").then((stream) => {
- console.info("createStream succeed");
- }).catch((err) => {
- console.error("createStream failed with error message: " + err.message + ", error code: " + err.code);
- });
createStream(path: string, mode: string, callback: AsyncCallback<Stream>): void
基于文件路徑打開(kāi)文件流,使用callback異步回調(diào)。
系統(tǒng)能力:SystemCapability.FileManagement.File.FileIO
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
path | string | 是 | 文件的應(yīng)用沙箱路徑。 |
mode | string | 是 | - r:打開(kāi)只讀文件,該文件必須存在。 - r+:打開(kāi)可讀寫的文件,該文件必須存在。 - w:打開(kāi)只寫文件,若文件存在則文件長(zhǎng)度清0,即該文件內(nèi)容會(huì)消失。若文件不存在則建立該文件。 - w+:打開(kāi)可讀寫文件,若文件存在則文件長(zhǎng)度清0,即該文件內(nèi)容會(huì)消失。若文件不存在則建立該文件。 - a:以附加的方式打開(kāi)只寫文件。若文件不存在,則會(huì)建立該文件,如果文件存在,寫入的數(shù)據(jù)會(huì)被加到文件尾,即文件原先的內(nèi)容會(huì)被保留。 - a+:以附加方式打開(kāi)可讀寫的文件。若文件不存在,則會(huì)建立該文件,如果文件存在,寫入的數(shù)據(jù)會(huì)被加到文件尾后,即文件原先的內(nèi)容會(huì)被保留。 |
callback | AsyncCallback<Stream> | 是 | 異步打開(kāi)文件流之后的回調(diào)。 |
錯(cuò)誤碼:
接口拋出錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)基礎(chǔ)文件IO錯(cuò)誤碼。
示例:
- let filePath = pathDir + "/test.txt";
- fs.createStream(filePath, "r+", (err, stream) => {
- if (err) {
- console.error("create stream failed with error message: " + err.message + ", error code: " + err.code);
- } else {
- console.info("create stream success");
- }
- });
createStreamSync(path: string, mode: string): Stream
以同步方法基于文件路徑打開(kāi)文件流。
系統(tǒng)能力:SystemCapability.FileManagement.File.FileIO
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
path | string | 是 | 文件的應(yīng)用沙箱路徑。 |
mode | string | 是 | - r:打開(kāi)只讀文件,該文件必須存在。 - r+:打開(kāi)可讀寫的文件,該文件必須存在。 - w:打開(kāi)只寫文件,若文件存在則文件長(zhǎng)度清0,即該文件內(nèi)容會(huì)消失。若文件不存在則建立該文件。 - w+:打開(kāi)可讀寫文件,若文件存在則文件長(zhǎng)度清0,即該文件內(nèi)容會(huì)消失。若文件不存在則建立該文件。 - a:以附加的方式打開(kāi)只寫文件。若文件不存在,則會(huì)建立該文件,如果文件存在,寫入的數(shù)據(jù)會(huì)被加到文件尾,即文件原先的內(nèi)容會(huì)被保留。 - a+:以附加方式打開(kāi)可讀寫的文件。若文件不存在,則會(huì)建立該文件,如果文件存在,寫入的數(shù)據(jù)會(huì)被加到文件尾后,即文件原先的內(nèi)容會(huì)被保留。 |
返回值:
類型 | 說(shuō)明 |
---|---|
返回文件流的結(jié)果。 |
錯(cuò)誤碼:
接口拋出錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)基礎(chǔ)文件IO錯(cuò)誤碼。
示例:
- let filePath = pathDir + "/test.txt";
- let ss = fs.createStreamSync(filePath, "r+");
fdopenStream(fd: number, mode: string): Promise<Stream>
基于文件描述符打開(kāi)文件流,使用Promise異步回調(diào)。
系統(tǒng)能力:SystemCapability.FileManagement.File.FileIO
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
fd | number | 是 | 已打開(kāi)的文件描述符。 |
mode | string | 是 | - r:打開(kāi)只讀文件,該文件必須存在。 - r+:打開(kāi)可讀寫的文件,該文件必須存在。 - w:打開(kāi)只寫文件,若文件存在則文件長(zhǎng)度清0,即該文件內(nèi)容會(huì)消失。若文件不存在則建立該文件。 - w+:打開(kāi)可讀寫文件,若文件存在則文件長(zhǎng)度清0,即該文件內(nèi)容會(huì)消失。若文件不存在則建立該文件。 - a:以附加的方式打開(kāi)只寫文件。若文件不存在,則會(huì)建立該文件,如果文件存在,寫入的數(shù)據(jù)會(huì)被加到文件尾,即文件原先的內(nèi)容會(huì)被保留。 - a+:以附加方式打開(kāi)可讀寫的文件。若文件不存在,則會(huì)建立該文件,如果文件存在,寫入的數(shù)據(jù)會(huì)被加到文件尾后,即文件原先的內(nèi)容會(huì)被保留。 |
返回值:
類型 | 說(shuō)明 |
---|---|
Promise<Stream> | Promise對(duì)象。返回文件流的結(jié)果。 |
錯(cuò)誤碼:
接口拋出錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)基礎(chǔ)文件IO錯(cuò)誤碼。
示例:
- let filePath = pathDir + "/test.txt";
- let file = fs.openSync(filePath);
- fs.fdopenStream(file.fd, "r+").then((stream) => {
- console.info("openStream succeed");
- fs.closeSync(file);
- }).catch((err) => {
- console.error("openStream failed with error message: " + err.message + ", error code: " + err.code);
- });
fdopenStream(fd: number, mode: string, callback: AsyncCallback<Stream>): void
基于文件描述符打開(kāi)文件流,使用callback異步回調(diào)。
系統(tǒng)能力:SystemCapability.FileManagement.File.FileIO
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
fd | number | 是 | 已打開(kāi)的文件描述符。 |
mode | string | 是 | - r:打開(kāi)只讀文件,該文件必須存在。 - r+:打開(kāi)可讀寫的文件,該文件必須存在。 - w:打開(kāi)只寫文件,若文件存在則文件長(zhǎng)度清0,即該文件內(nèi)容會(huì)消失。若文件不存在則建立該文件。 - w+:打開(kāi)可讀寫文件,若文件存在則文件長(zhǎng)度清0,即該文件內(nèi)容會(huì)消失。若文件不存在則建立該文件。 - a:以附加的方式打開(kāi)只寫文件。若文件不存在,則會(huì)建立該文件,如果文件存在,寫入的數(shù)據(jù)會(huì)被加到文件尾,即文件原先的內(nèi)容會(huì)被保留。 - a+:以附加方式打開(kāi)可讀寫的文件。若文件不存在,則會(huì)建立該文件,如果文件存在,寫入的數(shù)據(jù)會(huì)被加到文件尾后,即文件原先的內(nèi)容會(huì)被保留。 |
callback | AsyncCallback<Stream> | 是 | 異步打開(kāi)文件流之后的回調(diào)。 |
錯(cuò)誤碼:
接口拋出錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)基礎(chǔ)文件IO錯(cuò)誤碼。
示例:
- let filePath = pathDir + "/test.txt";
- let file = fs.openSync(filePath, fs.OpenMode.READ_ONLY);
- fs.fdopenStream(file.fd, "r+", (err, stream) => {
- if (err) {
- console.error("fdopen stream failed with error message: " + err.message + ", error code: " + err.code);
- } else {
- console.info("fdopen stream success");
- fs.closeSync(file);
- }
- });
fdopenStreamSync(fd: number, mode: string): Stream
以同步方法基于文件描述符打開(kāi)文件流。
系統(tǒng)能力:SystemCapability.FileManagement.File.FileIO
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
fd | number | 是 | 已打開(kāi)的文件描述符。 |
mode | string | 是 | - r:打開(kāi)只讀文件,該文件必須存在。 - r+:打開(kāi)可讀寫的文件,該文件必須存在。 - w:打開(kāi)只寫文件,若文件存在則文件長(zhǎng)度清0,即該文件內(nèi)容會(huì)消失。若文件不存在則建立該文件。 - w+:打開(kāi)可讀寫文件,若文件存在則文件長(zhǎng)度清0,即該文件內(nèi)容會(huì)消失。若文件不存在則建立該文件。 - a:以附加的方式打開(kāi)只寫文件。若文件不存在,則會(huì)建立該文件,如果文件存在,寫入的數(shù)據(jù)會(huì)被加到文件尾,即文件原先的內(nèi)容會(huì)被保留。 - a+:以附加方式打開(kāi)可讀寫的文件。若文件不存在,則會(huì)建立該文件,如果文件存在,寫入的數(shù)據(jù)會(huì)被加到文件尾后,即文件原先的內(nèi)容會(huì)被保留。 |
返回值:
類型 | 說(shuō)明 |
---|---|
返回文件流的結(jié)果。 |
錯(cuò)誤碼:
接口拋出錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)基礎(chǔ)文件IO錯(cuò)誤碼。
示例:
- let filePath = pathDir + "/test.txt";
- let file = fs.openSync(filePath, fs.OpenMode.READ_ONLY | fs.OpenMode.CREATE);
- let ss = fs.fdopenStreamSync(file.fd, "r+");
- fs.closeSync(file);
文件具體信息,在調(diào)用Stat的方法前,需要先通過(guò)stat()方法(同步或異步)來(lái)構(gòu)建一個(gè)Stat實(shí)例。
系統(tǒng)能力:以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為SystemCapability.FileManagement.File.FileIO。
名稱 | 類型 | 可讀 | 可寫 | 說(shuō)明 |
---|---|---|---|---|
ino | number | 是 | 否 | 標(biāo)識(shí)該文件。通常同設(shè)備上的不同文件的INO不同。 |
mode | number | 是 | 否 | 表示文件權(quán)限,各特征位的含義如下: - 0o400:用戶讀,對(duì)于普通文件,所有者可讀取文件;對(duì)于目錄,所有者可讀取目錄項(xiàng)。 - 0o200:用戶寫,對(duì)于普通文件,所有者可寫入文件;對(duì)于目錄,所有者可創(chuàng)建/刪除目錄項(xiàng)。 - 0o100:用戶執(zhí)行,對(duì)于普通文件,所有者可執(zhí)行文件;對(duì)于目錄,所有者可在目錄中搜索給定路徑名。 - 0o040:用戶組讀,對(duì)于普通文件,所有用戶組可讀取文件;對(duì)于目錄,所有用戶組可讀取目錄項(xiàng)。 - 0o020:用戶組寫,對(duì)于普通文件,所有用戶組可寫入文件;對(duì)于目錄,所有用戶組可創(chuàng)建/刪除目錄項(xiàng)。 - 0o010:用戶組執(zhí)行,對(duì)于普通文件,所有用戶組可執(zhí)行文件;對(duì)于目錄,所有用戶組是否可在目錄中搜索給定路徑名。 - 0o004:其他讀,對(duì)于普通文件,其余用戶可讀取文件;對(duì)于目錄,其他用戶組可讀取目錄項(xiàng)。 - 0o002:其他寫,對(duì)于普通文件,其余用戶可寫入文件;對(duì)于目錄,其他用戶組可創(chuàng)建/刪除目錄項(xiàng)。 - 0o001:其他執(zhí)行,對(duì)于普通文件,其余用戶可執(zhí)行文件;對(duì)于目錄,其他用戶組可在目錄中搜索給定路徑名。 |
uid | number | 是 | 否 | 文件所有者的ID。 |
gid | number | 是 | 否 | 文件所有組的ID。 |
size | number | 是 | 否 | 文件的大小,以字節(jié)為單位。僅對(duì)普通文件有效。 |
atime | number | 是 | 否 | 上次訪問(wèn)該文件的時(shí)間,表示距1970年1月1日0時(shí)0分0秒的秒數(shù)。 |
mtime | number | 是 | 否 | 上次修改該文件的時(shí)間,表示距1970年1月1日0時(shí)0分0秒的秒數(shù)。 |
ctime | number | 是 | 否 | 最近改變文件狀態(tài)的時(shí)間,表示距1970年1月1日0時(shí)0分0秒的秒數(shù)。 |
isBlockDevice(): boolean
用于判斷文件是否是塊特殊文件。一個(gè)塊特殊文件只能以塊為粒度進(jìn)行訪問(wèn),且訪問(wèn)的時(shí)候帶緩存。
系統(tǒng)能力:SystemCapability.FileManagement.File.FileIO
返回值:
類型 | 說(shuō)明 |
---|---|
boolean | 表示文件是否是塊特殊設(shè)備。 |
錯(cuò)誤碼:
接口拋出錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)基礎(chǔ)文件IO錯(cuò)誤碼。
示例:
- let filePath = pathDir + "/test.txt";
- let isBLockDevice = fs.statSync(filePath).isBlockDevice();
isCharacterDevice(): boolean
用于判斷文件是否是字符特殊文件。一個(gè)字符特殊設(shè)備可進(jìn)行隨機(jī)訪問(wèn),且訪問(wèn)的時(shí)候不帶緩存。
系統(tǒng)能力:SystemCapability.FileManagement.File.FileIO
返回值:
類型 | 說(shuō)明 |
---|---|
boolean | 表示文件是否是字符特殊設(shè)備。 |
錯(cuò)誤碼:
接口拋出錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)基礎(chǔ)文件IO錯(cuò)誤碼。
示例:
- let filePath = pathDir + "/test.txt";
- let isCharacterDevice = fs.statSync(filePath).isCharacterDevice();
isDirectory(): boolean
用于判斷文件是否是目錄。
系統(tǒng)能力:SystemCapability.FileManagement.File.FileIO
返回值:
類型 | 說(shuō)明 |
---|---|
boolean | 表示文件是否是目錄。 |
錯(cuò)誤碼:
接口拋出錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)基礎(chǔ)文件IO錯(cuò)誤碼。
示例:
- let dirPath = pathDir + "/test";
- let isDirectory = fs.statSync(dirPath).isDirectory();
isFIFO(): boolean
用于判斷文件是否是命名管道(有時(shí)也稱為FIFO)。命名管道通常用于進(jìn)程間通信。
系統(tǒng)能力:SystemCapability.FileManagement.File.FileIO
返回值:
類型 | 說(shuō)明 |
---|---|
boolean | 表示文件是否是 FIFO。 |
錯(cuò)誤碼:
接口拋出錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)基礎(chǔ)文件IO錯(cuò)誤碼。
示例:
- let filePath = pathDir + "/test.txt";
- let isFIFO = fs.statSync(filePath).isFIFO();
isFile(): boolean
用于判斷文件是否是普通文件。
系統(tǒng)能力:SystemCapability.FileManagement.File.FileIO
返回值:
類型 | 說(shuō)明 |
---|---|
boolean | 表示文件是否是普通文件。 |
錯(cuò)誤碼:
接口拋出錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)基礎(chǔ)文件IO錯(cuò)誤碼。
示例:
- let filePath = pathDir + "/test.txt";
- let isFile = fs.statSync(filePath).isFile();
isSocket(): boolean
用于判斷文件是否是套接字。
系統(tǒng)能力:SystemCapability.FileManagement.File.FileIO
返回值:
類型 | 說(shuō)明 |
---|---|
boolean | 表示文件是否是套接字。 |
錯(cuò)誤碼:
接口拋出錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)基礎(chǔ)文件IO錯(cuò)誤碼。
示例:
- let filePath = pathDir + "/test.txt";
- let isSocket = fs.statSync(filePath).isSocket();
isSymbolicLink(): boolean
用于判斷文件是否是符號(hào)鏈接。
系統(tǒng)能力:SystemCapability.FileManagement.File.FileIO
返回值:
類型 | 說(shuō)明 |
---|---|
boolean | 表示文件是否是符號(hào)鏈接。 |
錯(cuò)誤碼:
接口拋出錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)基礎(chǔ)文件IO錯(cuò)誤碼。
示例:
- let filePath = pathDir + "/test";
- let isSymbolicLink = fs.statSync(filePath).isSymbolicLink();
close(): Promise<void>
關(guān)閉文件流,使用Promise異步回調(diào)。
系統(tǒng)能力:SystemCapability.FileManagement.File.FileIO
返回值:
類型 | 說(shuō)明 |
---|---|
Promise<void> | Promise對(duì)象。返回表示異步關(guān)閉文件流的結(jié)果。 |
錯(cuò)誤碼:
接口拋出錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)基礎(chǔ)文件IO錯(cuò)誤碼。
示例:
- let filePath = pathDir + "/test.txt";
- let ss= fs.createStreamSync(filePath, "r+");
- ss.close().then(() => {
- console.info("close fileStream succeed");
- }).catch((err) => {
- console.error("close fileStream failed with error message: " + err.message + ", error code: " + err.code);
- });
close(callback: AsyncCallback<void>): void
異步關(guān)閉文件流,使用callback異步回調(diào)。
系統(tǒng)能力:SystemCapability.FileManagement.File.FileIO
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
callback | AsyncCallback<void> | 是 | 異步關(guān)閉文件流之后的回調(diào)。 |
錯(cuò)誤碼:
接口拋出錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)基礎(chǔ)文件IO錯(cuò)誤碼。
示例:
- let filePath = pathDir + "/test.txt";
- let ss= fs.createStreamSync(filePath, "r+");
- ss.close((err) => {
- if (err) {
- console.error("close stream failed with error message: " + err.message + ", error code: " + err.code);
- } else {
- console.info("close stream success");
- }
- });
closeSync(): void
同步關(guān)閉文件流。
系統(tǒng)能力:SystemCapability.FileManagement.File.FileIO
錯(cuò)誤碼:
接口拋出錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)基礎(chǔ)文件IO錯(cuò)誤碼。
示例:
- let filePath = pathDir + "/test.txt";
- let ss= fs.createStreamSync(filePath, "r+");
- ss.closeSync();
flush(): Promise<void>
刷新文件流,使用Promise異步回調(diào)。
系統(tǒng)能力:SystemCapability.FileManagement.File.FileIO
返回值:
類型 | 說(shuō)明 |
---|---|
Promise<void> | Promise對(duì)象。返回表示異步刷新文件流的結(jié)果。 |
錯(cuò)誤碼:
接口拋出錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)基礎(chǔ)文件IO錯(cuò)誤碼。
示例:
- let filePath = pathDir + "/test.txt";
- let ss= fs.createStreamSync(filePath, "r+");
- ss.flush().then(() => {
- console.info("flush succeed");
- }).catch((err) => {
- console.error("flush failed with error message: " + err.message + ", error code: " + err.code);
- });
flush(callback: AsyncCallback<void>): void
異步刷新文件流,使用callback異步回調(diào)。
系統(tǒng)能力:SystemCapability.FileManagement.File.FileIO
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
callback | AsyncCallback<void> | 是 | 異步刷新文件流后的回調(diào)函數(shù)。 |
錯(cuò)誤碼:
接口拋出錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)基礎(chǔ)文件IO錯(cuò)誤碼。
示例:
- let filePath = pathDir + "/test.txt";
- let ss= fs.createStreamSync(filePath, "r+");
- ss.flush((err) => {
- if (err) {
- console.error("flush stream failed with error message: " + err.message + ", error code: " + err.code);
- } else {
- console.info("flush success");
- }
- });
flushSync(): void
同步刷新文件流。
系統(tǒng)能力:SystemCapability.FileManagement.File.FileIO
錯(cuò)誤碼:
接口拋出錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)基礎(chǔ)文件IO錯(cuò)誤碼。
示例:
- let filePath = pathDir + "/test.txt";
- let ss= fs.createStreamSync(filePath, "r+");
- ss.flushSync();
write(buffer: ArrayBuffer|string, options?: { offset?: number; length?: number; encoding?: string; }): Promise<number>
將數(shù)據(jù)寫入流文件,使用Promise異步回調(diào)。
系統(tǒng)能力:SystemCapability.FileManagement.File.FileIO
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
buffer | ArrayBuffer|string | 是 | 待寫入文件的數(shù)據(jù),可來(lái)自緩沖區(qū)或字符串。 |
options | Object | 否 | 支持如下選項(xiàng): - length,number類型,表示期望寫入數(shù)據(jù)的長(zhǎng)度。默認(rèn)緩沖區(qū)長(zhǎng)度。 - offset,number類型,表示期望寫入文件的位置??蛇x,默認(rèn)從當(dāng)前位置開(kāi)始寫。 - encoding,string類型,當(dāng)數(shù)據(jù)是string類型時(shí)有效,表示數(shù)據(jù)的編碼方式,默認(rèn) 'utf-8'。僅支持 'utf-8'。 |
返回值:
類型 | 說(shuō)明 |
---|---|
Promise<number> | Promise對(duì)象。返回實(shí)際寫入的長(zhǎng)度。 |
錯(cuò)誤碼:
接口拋出錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)基礎(chǔ)文件IO錯(cuò)誤碼。
示例:
- let filePath = pathDir + "/test.txt";
- let ss= fs.createStreamSync(filePath, "r+");
- ss.write("hello, world",{ offset: 5, length: 5, encoding: 'utf-8' }).then((number) => {
- console.info("write succeed and size is:" + number);
- }).catch((err) => {
- console.error("write failed with error message: " + err.message + ", error code: " + err.code);
- });
write(buffer: ArrayBuffer|string, options?: { offset?: number; length?: number; encoding?: string; }, callback: AsyncCallback<number>): void
將數(shù)據(jù)寫入流文件,使用callback異步回調(diào)。
系統(tǒng)能力:SystemCapability.FileManagement.File.FileIO
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
buffer | ArrayBuffer|string | 是 | 待寫入文件的數(shù)據(jù),可來(lái)自緩沖區(qū)或字符串。 |
options | Object | 否 | 支持如下選項(xiàng): - length,number類型,表示期望寫入數(shù)據(jù)的長(zhǎng)度??蛇x,默認(rèn)緩沖區(qū)長(zhǎng)度。 - offset,number類型,表示期望寫入文件的位置。可選,默認(rèn)從當(dāng)前位置開(kāi)始寫。 - encoding,string類型,當(dāng)數(shù)據(jù)是string類型時(shí)有效,表示數(shù)據(jù)的編碼方式,默認(rèn) 'utf-8'。僅支持 'utf-8'。 |
callback | AsyncCallback<number> | 是 | 異步寫入完成后執(zhí)行的回調(diào)函數(shù)。 |
錯(cuò)誤碼:
接口拋出錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)基礎(chǔ)文件IO錯(cuò)誤碼。
示例:
- let filePath = pathDir + "/test.txt";
- let ss= fs.createStreamSync(filePath, "r+");
- ss.write("hello, world", { offset: 5, length: 5, encoding :'utf-8'}, (err, bytesWritten) => {
- if (err) {
- console.error("write stream failed with error message: " + err.message + ", error code: " + err.code);
- } else {
- if (bytesWritten) {
- console.info("write succeed and size is:" + bytesWritten);
- }
- }
- });
writeSync(buffer: ArrayBuffer|string, options?: { offset?: number; length?: number; encoding?: string; }): number
以同步方法將數(shù)據(jù)寫入流文件。
系統(tǒng)能力:SystemCapability.FileManagement.File.FileIO
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
buffer | ArrayBuffer|string | 是 | 待寫入文件的數(shù)據(jù),可來(lái)自緩沖區(qū)或字符串。 |
options | Object | 否 | 支持如下選項(xiàng): - length,number類型,表示期望寫入數(shù)據(jù)的長(zhǎng)度??蛇x,默認(rèn)緩沖區(qū)長(zhǎng)度。 - offset,number類型,表示期望寫入文件的位置。可選,默認(rèn)從當(dāng)前位置開(kāi)始寫。 - encoding,string類型,當(dāng)數(shù)據(jù)是string類型時(shí)有效,表示數(shù)據(jù)的編碼方式,默認(rèn) 'utf-8'。僅支持 'utf-8'。 |
返回值:
類型 | 說(shuō)明 |
---|---|
number | 實(shí)際寫入的長(zhǎng)度。 |
錯(cuò)誤碼:
接口拋出錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)基礎(chǔ)文件IO錯(cuò)誤碼。
示例:
- let filePath = pathDir + "/test.txt";
- let ss= fs.createStreamSync(filePath,"r+");
- let num = ss.writeSync("hello, world", {offset: 5, length: 5, encoding :'utf-8'});
read(buffer: ArrayBuffer, options?: { offset?: number; length?: number; }): Promise<number>
從流文件讀取數(shù)據(jù),使用Promise異步回調(diào)。
系統(tǒng)能力:SystemCapability.FileManagement.File.FileIO
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
buffer | ArrayBuffer | 是 | 用于讀取文件的緩沖區(qū)。 |
options | Object | 否 | 支持如下選項(xiàng): - length,number類型,表示期望讀取數(shù)據(jù)的長(zhǎng)度??蛇x,默認(rèn)緩沖區(qū)長(zhǎng)度。 - offset,number類型,表示期望讀取文件的位置。可選,默認(rèn)從當(dāng)前位置開(kāi)始讀。 |
返回值:
類型 | 說(shuō)明 |
---|---|
Promise<number> | Promise對(duì)象。返回讀取的結(jié)果。 |
錯(cuò)誤碼:
接口拋出錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)基礎(chǔ)文件IO錯(cuò)誤碼。
示例:
- let filePath = pathDir + "/test.txt";
- let ss = fs.createStreamSync(filePath, "r+");
- let buf = new ArrayBuffer(4096);
- ss.read(buf, {offset: 5, length: 5}).then((readLen) => {
- console.info("read data succeed");
- console.log(String.fromCharCode.apply(null, new Uint8Array(buf.slice(0, readLen))));
- }).catch((err) => {
- console.error("read data failed with error message: " + err.message + ", error code: " + err.code);
- });
read(buffer: ArrayBuffer, options?: { position?: number; offset?: number; length?: number; }, callback: AsyncCallback<number>): void
從流文件讀取數(shù)據(jù),使用callback異步回調(diào)。
系統(tǒng)能力:SystemCapability.FileManagement.File.FileIO
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
buffer | ArrayBuffer | 是 | 用于讀取文件的緩沖區(qū)。 |
options | Object | 否 | 支持如下選項(xiàng): - length,number類型,表示期望讀取數(shù)據(jù)的長(zhǎng)度。可選,默認(rèn)緩沖區(qū)長(zhǎng)度。 - offset,number類型,表示期望讀取文件的位置??蛇x,默認(rèn)從當(dāng)前位置開(kāi)始讀. |
callback | AsyncCallback<number> | 是 | 異步從流文件讀取數(shù)據(jù)之后的回調(diào)。 |
錯(cuò)誤碼:
接口拋出錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)基礎(chǔ)文件IO錯(cuò)誤碼。
示例:
- let filePath = pathDir + "/test.txt";
- let ss = fs.createStreamSync(filePath, "r+");
- let buf = new ArrayBuffer(4096)
- ss.read(buf, {offset: 5, length: 5}, (err, readLen) => {
- if (err) {
- console.error("read stream failed with error message: " + err.message + ", error code: " + err.code);
- } else {
- console.info("read data succeed");
- console.log(String.fromCharCode.apply(null, new Uint8Array(buf.slice(0, readLen))));
- }
- });
readSync(buffer: ArrayBuffer, options?: { offset?: number; length?: number; }): number
以同步方法從流文件讀取數(shù)據(jù)。
系統(tǒng)能力:SystemCapability.FileManagement.File.FileIO
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
buffer | ArrayBuffer | 是 | 用于讀取文件的緩沖區(qū)。 |
options | Object | 否 | 支持如下選項(xiàng): - length,number類型,表示期望讀取數(shù)據(jù)的長(zhǎng)度??蛇x,默認(rèn)緩沖區(qū)長(zhǎng)度。 - offset,number類型,表示期望讀取文件的位置。可選,默認(rèn)從當(dāng)前位置開(kāi)始讀。 |
返回值:
類型 | 說(shuō)明 |
---|---|
number | 實(shí)際讀取的長(zhǎng)度。 |
錯(cuò)誤碼:
接口拋出錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)基礎(chǔ)文件IO錯(cuò)誤碼。
示例:
- let filePath = pathDir + "/test.txt";
- let ss = fs.createStreamSync(filePath, "r+");
- let num = ss.readSync(new ArrayBuffer(4096), {offset: 5, length: 5});
lock(exclusive?: boolean): Promise<void>;
文件阻塞式施加共享鎖或獨(dú)占鎖,使用Promise異步回調(diào)。
系統(tǒng)能力:SystemCapability.FileManagement.File.FileIO
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
exclusive | boolean | 否 | 是否施加獨(dú)占鎖,默認(rèn)false。 |
返回值:
類型 | 說(shuō)明 |
---|---|
Promise<void> | Promise對(duì)象。無(wú)返回值。 |
錯(cuò)誤碼:
接口拋出錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)基礎(chǔ)文件IO錯(cuò)誤碼。
示例:
- let file = fs.openSync(path, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
- file.lock(true).then(() => {
- console.log("lock file successful");
- }).catch((err) => {
- console.info("lock file failed with error message: " + err.message + ", error code: " + err.code);
- });
lock(exclusive?: boolean, callback: AsyncCallback<void>): void;
文件阻塞式施加共享鎖或獨(dú)占鎖,使Callback異步回調(diào)。
系統(tǒng)能力:SystemCapability.FileManagement.File.FileIO
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
exclusive | boolean | 否 | 是否施加獨(dú)占鎖,默認(rèn)false。 |
callback | AsyncCallback<void> | 是 | 異步文件上鎖之后的回調(diào)。 |
錯(cuò)誤碼:
接口拋出錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)基礎(chǔ)文件IO錯(cuò)誤碼。
示例:
- let file = fs.openSync(path, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
- file.lock(true, (err) => {
- if (err) {
- console.error("lock file failed with error message: " + err.message + ", error code: " + err.code);
- } else {
- console.log("lock file successful");
- }
- });
tryLock(exclusive?: boolean): void;
文件非阻塞式施加共享鎖或獨(dú)占鎖。
系統(tǒng)能力:SystemCapability.FileManagement.File.FileIO
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
exclusive | boolean | 否 | 是否施加獨(dú)占鎖,默認(rèn)false。 |
錯(cuò)誤碼:
接口拋出錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)基礎(chǔ)文件IO錯(cuò)誤碼。
示例:
- let file = fs.openSync(path, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
- file.tryLock(true);
- console.log("lock file successful");
unlock(): void;
以同步方式給文件解鎖。
系統(tǒng)能力:SystemCapability.FileManagement.File.FileIO
錯(cuò)誤碼:
接口拋出錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)基礎(chǔ)文件IO錯(cuò)誤碼。
示例:
- let file = fs.openSync(path, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
- file.tryLock(true);
- file.unlock();
- console.log("unlock file successful");
open接口flags參數(shù)常量。文件打開(kāi)標(biāo)簽。
系統(tǒng)能力:SystemCapability.FileManagement.File.FileIO
名稱 | 類型 | 值 | 說(shuō)明 |
---|---|---|---|
READ_ONLY | number | 0o0 | 只讀打開(kāi)。 |
WRITE_ONLY | number | 0o1 | 只寫打開(kāi)。 |
READ_WRITE | number | 0o2 | 讀寫打開(kāi)。 |
CREATE | number | 0o100 | 若文件不存在,則創(chuàng)建文件。 |
TRUNC | number | 0o1000 | 如果文件存在且以只寫或讀寫的方式打開(kāi)文件,則將其長(zhǎng)度裁剪為零。 |
APPEND | number | 0o2000 | 以追加方式打開(kāi),后續(xù)寫將追加到文件末尾。 |
NONBLOCK | number | 0o4000 | 如果path指向FIFO、塊特殊文件或字符特殊文件,則本次打開(kāi)及后續(xù) IO 進(jìn)行非阻塞操作。 |
DIR | number | 0o200000 | 如果path不指向目錄,則出錯(cuò)。 |
NOFOLLOW | number | 0o400000 | 如果path指向符號(hào)鏈接,則出錯(cuò)。 |
SYNC | number | 0o4010000 | 以同步IO的方式打開(kāi)文件。 |
系統(tǒng)能力:SystemCapability.FileManagement.File.FileIO
文件過(guò)濾配置項(xiàng)類型,支持listFile接口使用。
名稱 | 類型 | 說(shuō)明 |
---|---|---|
suffix | Array<string> | 文件后綴名完全匹配,各個(gè)關(guān)鍵詞OR關(guān)系。 |
displayName | Array<string> | 文件名模糊匹配,各個(gè)關(guān)鍵詞OR關(guān)系。 |
mimeType | Array<string> | mime類型完全匹配,各個(gè)關(guān)鍵詞OR關(guān)系。 |
fileSizeOver | number | 文件大小匹配,大于等于指定大小的文件。 |
lastModifiedAfter | number | 文件最近修改時(shí)間匹配,在指定時(shí)間點(diǎn)及之后的文件。 |
excludeMedia | boolean | 是否排除Media中已有的文件。 |
更多建議: