HarmonyOS API:@ohos.fileio (文件管理)

joytrian
发布于 2023-4-13 19:35
浏览
0收藏

版本:v3.1 Beta

@ohos.fileio (文件管理)

fileio.fdopenStream7+

fdopenStream(fd: number, mode: string): Promise<Stream>

基于文件描述符打开文件流,使用Promise异步回调。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名

类型

必填

说明

fd

number

待打开文件的文件描述符。

mode

string

- r:打开只读文件,该文件必须存在。

- r+:打开可读写的文件,该文件必须存在。

- w:打开只写文件,若文件存在则文件长度清0,即该文件内容会消失。若文件不存在则建立该文件。

- w+:打开可读写文件,若文件存在则文件长度清0,即该文件内容会消失。若文件不存在则建立该文件。

- a:以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。

- a+:以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。

返回值:

类型

说明

Promise<​​Stream​​>

Promise对象。返回文件流的结果。

示例:

let filePath = pathDir + "/test.txt";
let fd = fileio.openSync(filePath);
fileio.fdopenStream(fd, "r+").then(function(stream){
    console.info("openStream succeed");
}).catch(function(err){
    console.info("openStream failed with error:"+ err);
});

fileio.fdopenStream7+

fdopenStream(fd: number, mode: string, callback: AsyncCallback<Stream>): void

基于文件描述符打开文件流,使用callback异步回调。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名

类型

必填

说明

fd

number

待打开文件的文件描述符。

mode

string

- r:打开只读文件,该文件必须存在。

- r+:打开可读写的文件,该文件必须存在。

- w:打开只写文件,若文件存在则文件长度清0,即该文件内容会消失。若文件不存在则建立该文件。

- w+:打开可读写文件,若文件存在则文件长度清0,即该文件内容会消失。若文件不存在则建立该文件。

- a:以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。

- a+:以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。

callback

AsyncCallback<​​Stream​​>

异步打开文件流之后的回调。

示例:

let filePath = pathDir + "/test.txt";
let fd = fileio.openSync(filePath);
fileio.fdopenStream(fd, "r+", function (err, stream) {
    // do something
});

fileio.fdopenStreamSync7+

fdopenStreamSync(fd: number, mode: string): Stream

以同步方法基于文件描述符打开文件流。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名

类型

必填

说明

fd

number

待打开文件的文件描述符。

mode

string

- r:打开只读文件,该文件必须存在。

- r+:打开可读写的文件,该文件必须存在。

- w:打开只写文件,若文件存在则文件长度清0,即该文件内容会消失。若文件不存在则建立该文件。

- w+:打开可读写文件,若文件存在则文件长度清0,即该文件内容会消失。若文件不存在则建立该文件。

- a:以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。

- a+:以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。

返回值:

类型

说明

​Stream​

返回文件流的结果。

示例:

let filePath = pathDir + "/test.txt";
let fd = fileio.openSync(filePath);
let ss = fileio.fdopenStreamSync(fd, "r+");

fileio.fchown7+

fchown(fd: number, uid: number, gid: number): Promise<void>

基于文件描述符改变文件所有者,使用Promise异步回调。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名

类型

必填

说明

fd

number

待改变文件的文件描述符。

uid

number

文件所有者的UID。

gid

number

文件所有组的GID。

返回值:

类型

说明

Promise<void>

Promise对象。无返回值。

示例:

let filePath = pathDir + "/test.txt";
let fd = fileio.openSync(filePath);
let stat = fileio.statSync(filePath);
fileio.fchown(fd, stat.uid, stat.gid).then(function() {
    console.info("chown succeed");
}).catch(function(err){
    console.info("chown failed with error:"+ err);
});

fileio.fchown7+

fchown(fd: number, uid: number, gid: number, callback: AsyncCallback<void>): void

基于文件描述符改变文件所有者,使用callback异步回调。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名

类型

必填

说明

fd

number

待改变文件的文件描述符。

uid

number

文件所有者的UID。

gid

number

文件所有组的GID。

callback

AsyncCallback<void>

异步改变文件所有者之后的回调。

示例:

let filePath = pathDir + "/test.txt";
let fd = fileio.openSync(filePath);
let stat = fileio.statSync(filePath);
fileio.fchown(fd, stat.uid, stat.gid, function (err){
    // do something
});

fileio.fchownSync7+

fchownSync(fd: number, uid: number, gid: number): void

以同步方法基于文件描述符改变文件所有者。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名

类型

必填

说明

fd

number

待改变文件的文件描述符。

uid

number

文件所有者的UID。

gid

number

文件所有组的GID。

示例:

let filePath = pathDir + "/test.txt";
let fd = fileio.openSync(filePath);
let stat = fileio.statSync(filePath);
fileio.fchownSync(fd, stat.uid, stat.gid);

fileio.lchown7+

lchown(path: string, uid: number, gid: number): Promise<void>

基于文件路径改变文件所有者,更改符号链接本身的所有者,而不是符号链接所指向的实际文件,使用Promise异步回调。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名

类型

必填

说明

path

string

待打开文件的应用沙箱路径。

uid

number

新的UID。

gid

number

新的GID。

返回值:

类型

说明

Promise<void>

Promise对象。无返回值。

示例:

let filePath = pathDir + "/test.txt";
let stat = fileio.statSync(filePath);
fileio.lchown(filePath, stat.uid, stat.gid).then(function() {
    console.info("chown succeed");
}).catch(function(err){
    console.info("chown failed with error:"+ err);
});

fileio.lchown7+

lchown(path: string, uid: number, gid: number, callback: AsyncCallback<void>): void

基于文件路径改变文件所有者,更改符号链接本身的所有者,而不是更改符号链接所指向的实际文件,使用callback异步回调。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名

类型

必填

说明

path

string

待打开文件的应用沙箱路径。

uid

number

新的UID。

gid

number

新的GID。

callback

AsyncCallback<void>

异步改变文件所有者之后的回调。

示例:

let filePath = pathDir + "/test.txt";
let stat = fileio.statSync(filePath);
fileio.lchown(filePath, stat.uid, stat.gid, function (err){
    // do something
});

fileio.lchownSync7+

lchownSync(path: string, uid: number, gid: number): void

以同步方法基于文件路径改变文件所有者,更改符号链接本身的所有者,而不是更改符号链接所指向的实际文件。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名

类型

必填

说明

path

string

待打开文件的应用沙箱路径。

uid

number

新的UID。

gid

number

新的GID。

示例:

let filePath = pathDir + "/test.txt";
let stat = fileio.statSync(filePath);
fileio.lchownSync(filePath, stat.uid, stat.gid);

fileio.createWatcher7+

createWatcher(filename: string, events: number, callback: AsyncCallback<number>): Watcher

监听文件或者目录的变化,使用callback异步回调。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名

类型

必填

说明

filePath

string

待监视文件的应用沙箱路径。

events

number

- 1: 监听文件或者目录是否发生重命名。

- 2:监听文件或者目录内容的是否修改。

- 3:两者都有。

callback

AsyncCallback<number>

每发生变化一次,调用一次此函数。

返回值:

类型

说明

​Watcher​

Promise对象。返回文件变化监听的实例。

示例:

let filePath = pathDir +"/test.txt";
fileio.createWatcher(filePath, 1, function(number){
   console.info("Monitoring times: "+number);
});

Readout

仅用于read方法,获取文件的读取结果。

系统能力:以下各项对应的系统能力均为SystemCapability.FileManagement.File.FileIO。

名称

类型

可读

可写

说明

bytesRead

number

实际读取长度。

offset

number

读取数据相对于缓冲区首地址的偏移。

buffer

ArrayBuffer

保存读取数据的缓冲区。

Stat

文件具体信息,在调用Stat的方法前,需要先通过​​stat()​​方法(同步或异步)来构建一个Stat实例。

系统能力:以下各项对应的系统能力均为SystemCapability.FileManagement.File.FileIO。

属性

名称

类型

可读

可写

说明

dev

number

标识包含该文件的主设备号。

ino

number

标识该文件。通常同设备上的不同文件的INO不同。

mode

number

表示文件类型及权限,其首 4 位表示文件类型,后 12 位表示权限。各特征位的含义如下:

- 0o170000:可用于获取文件类型的掩码。

- 0o140000:文件是套接字。

- 0o120000:文件是符号链接。

- 0o100000:文件是一般文件。

- 0o060000:文件属于块设备。

- 0o040000:文件是目录。

- 0o020000:文件是字符设备。

- 0o010000:文件是具名管道,即FIFO。

- 0o0700:可用于获取用户权限的掩码。

- 0o0400:用户读,对于普通文件,所有者可读取文件;对于目录,所有者可读取目录项。

- 0o0200:用户写,对于普通文件,所有者可写入文件;对于目录,所有者可创建/删除目录项。

- 0o0100:用户执行,对于普通文件,所有者可执行文件;对于目录,所有者可在目录中搜索给定路径名。

- 0o0070:可用于获取用户组权限的掩码。

- 0o0040:用户组读,对于普通文件,所有用户组可读取文件;对于目录,所有用户组可读取目录项。

- 0o0020:用户组写,对于普通文件,所有用户组可写入文件;对于目录,所有用户组可创建/删除目录项。

- 0o0010:用户组执行,对于普通文件,所有用户组可执行文件;对于目录,所有用户组是否可在目录中搜索给定路径名。

- 0o0007:可用于获取其他用户权限的掩码。

- 0o0004:其他读,对于普通文件,其余用户可读取文件;对于目录,其他用户组可读取目录项。

- 0o0002:其他写,对于普通文件,其余用户可写入文件;对于目录,其他用户组可创建/删除目录项。

- 0o0001:其他执行,对于普通文件,其余用户可执行文件;对于目录,其他用户组可在目录中搜索给定路径名。

nlink

number

文件的硬链接数。

uid

number

文件所有者的ID。

gid

number

文件所有组的ID。

rdev

number

标识包含该文件的从设备号。

size

number

文件的大小,以字节为单位。仅对普通文件有效。

blocks

number

文件占用的块数,计算时块大小按512B计算。

atime

number

上次访问该文件的时间,表示距1970年1月1日0时0分0秒的秒数。

mtime

number

上次修改该文件的时间,表示距1970年1月1日0时0分0秒的秒数。

ctime

number

最近改变文件状态的时间,表示距1970年1月1日0时0分0秒的秒数。

isBlockDevice

isBlockDevice(): boolean

用于判断文件是否是块特殊文件。一个块特殊文件只能以块为粒度进行访问,且访问的时候带缓存。

系统能力:SystemCapability.FileManagement.File.FileIO

返回值:

类型

说明

boolean

表示文件是否是块特殊设备。

示例:

let filePath = pathDir + "/test.txt";
let isBLockDevice = fileio.statSync(filePath).isBlockDevice();

isCharacterDevice

isCharacterDevice(): boolean

用于判断文件是否是字符特殊文件。一个字符特殊设备可进行随机访问,且访问的时候不带缓存。

系统能力:SystemCapability.FileManagement.File.FileIO

返回值:

类型

说明

boolean

表示文件是否是字符特殊设备。

示例:

let filePath = pathDir + "/test.txt";
let isCharacterDevice = fileio.statSync(filePath).isCharacterDevice();

isDirectory

isDirectory(): boolean

用于判断文件是否是目录。

系统能力:SystemCapability.FileManagement.File.FileIO

返回值:

类型

说明

boolean

表示文件是否是目录。

示例:

let dirPath = pathDir + "/test";
let isDirectory = fileio.statSync(dirPath).isDirectory(); 

isFIFO

isFIFO(): boolean

用于判断文件是否是命名管道(有时也称为FIFO)。命名管道通常用于进程间通信。

系统能力:SystemCapability.FileManagement.File.FileIO

返回值:

类型

说明

boolean

表示文件是否是 FIFO。

示例:

let filePath = pathDir + "/test.txt";
let isFIFO = fileio.statSync(filePath).isFIFO(); 

isFile

isFile(): boolean

用于判断文件是否是普通文件。

系统能力:SystemCapability.FileManagement.File.FileIO

返回值:

类型

说明

boolean

表示文件是否是普通文件。

示例:

let filePath = pathDir + "/test.txt";
let isFile = fileio.statSync(filePath).isFile();

isSocket

isSocket(): boolean

用于判断文件是否是套接字。

系统能力:SystemCapability.FileManagement.File.FileIO

返回值:

类型

说明

boolean

表示文件是否是套接字。

示例:

let filePath = pathDir + "/test.txt";
let isSocket = fileio.statSync(filePath).isSocket(); 

isSymbolicLink(): boolean

用于判断文件是否是符号链接。

系统能力:SystemCapability.FileManagement.File.FileIO

返回值:

类型

说明

boolean

表示文件是否是符号链接。

示例:

let filePath = pathDir + "/test";
let isSymbolicLink = fileio.statSync(filePath).isSymbolicLink(); 

Watcher7+

Watcher是文件变化监听的实例,调用Watcher.stop()方法(同步或异步)来停止文件监听。

stop7+

stop(): Promise<void>

关闭watcher监听,使用Promise异步回调。

系统能力:SystemCapability.FileManagement.File.FileIO

示例:

let filePath = path + "/test.txt";
let watcher = fileio.createWatcher(filePath, 1, function(number){
    console.info("Monitoring times: "+number);
});
watcher.stop().then(function(){
     console.info("close watcher succeed");
});

stop7+

stop(callback: AsyncCallback<void>): void

关闭watcher监听,使用callback异步回调。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名

类型

必填

说明

callback

AsyncCallback<void>

以异步方法关闭watcher监听之后的回调。

示例:

let filePath = path +"/test.txt";
let watcher = fileio.createWatcher(filePath, 1, function(number){
    console.info("Monitoring times: "+number);
});
watcher.stop(function(){
    console.info("close watcher succeed");
})

Stream

文件流,在调用Stream的方法前,需要先通过createStream()方法(同步或异步)来构建一个Stream实例。

close7+

close(): Promise<void>

关闭文件流,使用Promise异步回调。

系统能力:SystemCapability.FileManagement.File.FileIO

返回值:

类型

说明

Promise<void>

Promise对象。返回表示异步关闭文件流的结果。

示例:

let filePath = pathDir + "/test.txt";
let ss= fileio.createStreamSync(filePath, "r+");
ss.close().then(function(){
    console.info("close fileStream succeed");
}).catch(function(err){
    console.info("close fileStream  failed with error:"+ err);
});

close7+

close(callback: AsyncCallback<void>): void

异步关闭文件流,使用callback异步回调。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名

类型

必填

说明

callback

AsyncCallback<void>

异步关闭文件流之后的回调。

示例:

let filePath = pathDir + "/test.txt";
let ss= fileio.createStreamSync(filePath, "r+");
ss.close(function (err) {
    // do something
});

closeSync

closeSync(): void

同步关闭文件流。

系统能力:SystemCapability.FileManagement.File.FileIO

示例:

let filePath = pathDir + "/test.txt";
let ss= fileio.createStreamSync(filePath, "r+");
ss.closeSync();

flush7+

flush(): Promise<void>

刷新文件流,使用Promise异步回调。

系统能力:SystemCapability.FileManagement.File.FileIO

返回值:

类型

说明

Promise<void>

Promise对象。返回表示异步刷新文件流的结果。

示例:

let filePath = pathDir + "/test.txt";
let ss= fileio.createStreamSync(filePath, "r+");
ss.flush().then(function (){
    console.info("flush succeed");
}).catch(function(err){
    console.info("flush failed with error:"+ err);
});

flush7+

flush(callback: AsyncCallback<void>): void

异步刷新文件流,使用callback异步回调。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名

类型

必填

说明

callback

AsyncCallback<void>

异步刷新文件流后的回调函数。

示例:

let filePath = pathDir + "/test.txt";
let ss= fileio.createStreamSync(filePath, "r+");
ss.flush(function (err) {
    // do something
});

flushSync7+

flushSync(): void

同步刷新文件流。

系统能力:SystemCapability.FileManagement.File.FileIO

示例:

let filePath = pathDir + "/test.txt";
let ss= fileio.createStreamSync(filePath, "r+");
ss.flushSync();

write7+

write(buffer: ArrayBuffer|string, options?: { offset?: number; length?: number; position?: number; encoding?: string; }): Promise<number>

将数据写入流文件,使用Promise异步回调。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名

类型

必填

说明

buffer

ArrayBuffer|string

待写入文件的数据,可来自缓冲区或字符串。

options

Object

支持如下选项:

- offset,number类型,表示期望写入数据的位置相对于数据首地址的偏移。可选,默认为0。

- length,number类型,表示期望写入数据的长度。可选,默认缓冲区长度减去偏移长度。

- position,number类型,表示期望写入文件的位置。可选,默认从当前位置开始写。

- encoding,string类型,当数据是string类型时有效,表示数据的编码方式,默认 'utf-8'。仅支持 'utf-8'。

约束:offset+length<=buffer.size。

返回值:

类型

说明

Promise<number>

Promise对象。返回实际写入的长度。

示例:

let filePath = pathDir + "/test.txt";
let ss= fileio.createStreamSync(filePath, "r+");
ss.write("hello, world",{offset: 1,length: 5,position: 5,encoding :'utf-8'}).then(function (number){
    console.info("write succeed and size is:"+ number);
}).catch(function(err){
    console.info("write failed with error:"+ err);
});

write7+

write(buffer: ArrayBuffer|string, options: { offset?: number; length?: number; position?: number; encoding?: string; }, callback: AsyncCallback<number>): void

将数据写入流文件,使用callback异步回调。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名

类型

必填

说明

buffer

ArrayBuffer|string

待写入文件的数据,可来自缓冲区或字符串。

options

Object

支持如下选项:

- offset,number类型,表示期望写入数据的位置相对于数据首地址的偏移。可选,默认为0。

- length,number类型,表示期望写入数据的长度。可选,默认缓冲区长度减去偏移长度。

- position,number类型,表示期望写入文件的位置。可选,默认从当前位置开始写。

- encoding,string类型,当数据是string类型时有效,表示数据的编码方式,默认 'utf-8'。仅支持 'utf-8'。

约束:offset+length<=buffer.size。

callback

AsyncCallback<number>

异步写入完成后执行的回调函数。

示例:

let filePath = pathDir + "/test.txt";
let ss= fileio.createStreamSync(filePath, "r+");
ss.write("hello, world", {offset: 1, length: 5, position: 5, encoding :'utf-8'}, function (err, bytesWritten) {
    if (bytesWritten) {
       // do something
       console.info("write succeed and size is:"+ bytesWritten);
    }
});

writeSync7+

writeSync(buffer: ArrayBuffer|string, options?: { offset?: number; length?: number; position?: number; encoding?: string; }): number

以同步方法将数据写入流文件。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名

类型

必填

说明

buffer

ArrayBuffer|string

待写入文件的数据,可来自缓冲区或字符串。

options

Object

支持如下选项:

- offset,number类型,表示期望写入数据的位置相对于数据首地址的偏移。可选,默认为0。

- length,number类型,表示期望写入数据的长度。可选,默认缓冲区长度减去偏移长度。

- position,number类型,表示期望写入文件的位置。可选,默认从当前位置开始写。

- encoding,string类型,当数据是string类型时有效,表示数据的编码方式,默认 'utf-8'。仅支持 'utf-8'。

约束:offset+length<=buffer.size。

返回值:

类型

说明

number

实际写入的长度。

示例:

let filePath = pathDir + "/test.txt";
let ss= fileio.createStreamSync(filePath,"r+");
let num = ss.writeSync("hello, world", {offset: 1, length: 5, position: 5, encoding :'utf-8'});

read7+

read(buffer: ArrayBuffer, options?: { position?: number; offset?: number; length?: number; }): Promise<ReadOut>

从流文件读取数据,使用Promise异步回调。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名

类型

必填

说明

buffer

ArrayBuffer

用于读取文件的缓冲区。

options

Object

支持如下选项:

- offset,number类型,表示将数据读取到缓冲区的位置,即相对于缓冲区首地址的偏移。可选,默认为0。

- length,number类型,表示期望读取数据的长度。可选,默认缓冲区长度减去偏移长度。

- position,number类型,表示期望读取文件的位置。可选,默认从当前位置开始读。

约束:offset+length<=buffer.size。

返回值:

类型

说明

Promise<​​ReadOut​​>

Promise对象。返回读取的结果。

示例:

let filePath = pathDir + "/test.txt";
let ss = fileio.createStreamSync(filePath, "r+");
ss.read(new ArrayBuffer(4096), {offset: 1, length: 5, position: 5}).then(function (readOut){
    console.info("read data succeed");
    console.log(String.fromCharCode.apply(null, new Uint8Array(readOut.buffer)));
}).catch(function(err){
    console.info("read data failed with error:"+ err);
});

read7+

read(buffer: ArrayBuffer, options: { position?: number; offset?: number; length?: number; }, callback: AsyncCallback<ReadOut>): void

从流文件读取数据,使用callback异步回调。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名

类型

必填

说明

buffer

ArrayBuffer

用于读取文件的缓冲区。

options

Object

支持如下选项:

- offset,number类型,表示将数据读取到缓冲区的位置,即相对于缓冲区首地址的偏移。可选,默认为0。

- length,number类型,表示期望读取数据的长度。可选,默认缓冲区长度减去偏移长度。

- position,number类型,表示期望读取文件的位置。可选,默认从当前位置开始读。

约束:offset+length<=buffer.size。

callback

AsyncCallback<​​ReadOut​​>

异步从流文件读取数据之后的回调。

示例:

let filePath = pathDir + "/test.txt";
let ss = fileio.createStreamSync(filePath, "r+");
ss.read(new ArrayBuffer(4096),{offset: 1, length: 5, position: 5},function (err, readOut) {
    if (readOut) {
        console.info("read data succeed");
        console.log(String.fromCharCode.apply(null, new Uint8Array(readOut.buffer)));
    }
});

readSync7+

readSync(buffer: ArrayBuffer, options?: { position?: number; offset?: number; length?: number; }): number

以同步方法从流文件读取数据。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名

类型

必填

说明

buffer

ArrayBuffer

用于读取文件的缓冲区。

options

Object

支持如下选项:

- offset,number类型,表示将数据读取到缓冲区的位置,即相对于缓冲区首地址的偏移。可选,默认为0。

- length,number类型,表示期望读取数据的长度。可选,默认缓冲区长度减去偏移长度。

- position,number类型,表示期望读取文件的位置。可选,默认从当前位置开始读。

约束:offset+length<=buffer.size。

返回值:

类型

说明

number

实际读取的长度。

示例:

let filePath = pathDir + "/test.txt";
let ss = fileio.createStreamSync(filePath, "r+");
let num = ss.readSync(new ArrayBuffer(4096), {offset: 1, length: 5, position: 5});

Dir

管理目录,在调用Dir的方法前,需要先通过opendir方法(同步或异步)来构建一个Dir实例。

read

read(): Promise<Dirent>

读取下一个目录项,使用Promise异步回调。

系统能力:SystemCapability.FileManagement.File.FileIO

返回值:

类型

说明

Promise<​​Dirent​​>

Promise对象。返回表示异步读取目录项的结果。

示例:

dir.read().then(function (dirent){
    console.log("read succeed, the name of dirent is " + dirent.name);
}).catch(function(err){
    console.info("read failed with error:"+ err);
});

read

read(callback: AsyncCallback<Dirent>): void

读取下一个目录项,使用callback异步回调。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名

类型

必填

说明

callback

AsyncCallback<​​Dirent​​>

异步读取下一个目录项之后的回调。

示例:

dir.read(function (err, dirent) {
    if (dirent) {
        // do something
        console.log("read succeed, the name of file is " + dirent.name);
    }
});

readSync

readSync(): Dirent

同步读取下一个目录项。

系统能力:SystemCapability.FileManagement.File.FileIO

返回值:

类型

说明

​Dirent​

表示一个目录项。

示例:

let dirent = dir.readSync();

close7+

close(): Promise<void>

异步关闭目录,使用promise形式返回结果。目录被关闭后,Dir中持有的文件描述将被释放,后续将无法从Dir中读取目录项。

系统能力:SystemCapability.FileManagement.File.FileIO

示例:

dir.close().then(function(err){
    console.info("close dir successfully");
});

close7+

close(callback: AsyncCallback<void>): void

异步关闭目录,使用callback形式返回结果。目录被关闭后,Dir中持有的文件描述将被释放,后续将无法从Dir中读取目录项。

系统能力:SystemCapability.FileManagement.File.FileIO

示例:

dir.close(function(err){
    console.info("close dir successfully");
});

closeSync

closeSync(): void

用于关闭目录。目录被关闭后,Dir中持有的文件描述将被释放,后续将无法从Dir中读取目录项。

系统能力:SystemCapability.FileManagement.File.FileIO

示例:

dir.closeSync();

Dirent

在调用Dirent的方法前,需要先通过​​dir.read()​​方法(同步或异步)来构建一个Dirent实例。

系统能力:以下各项对应的系统能力均为SystemCapability.FileManagement.File.FileIO。

属性

名称

类型

可读

可写

说明

name

string

目录项的名称。

isBlockDevice

isBlockDevice(): boolean

用于判断当前目录项是否是块特殊文件。一个块特殊文件只能以块为粒度进行访问,且访问的时候带缓存。

系统能力:SystemCapability.FileManagement.File.FileIO

返回值:

类型

说明

boolean

表示当前目录项是否是块特殊设备。

示例:

let dir = fileio.opendirSync(pathDir);
let isBLockDevice = dir.readSync().isBlockDevice();

isCharacterDevice

isCharacterDevice(): boolean

用于判断当前目录项是否是字符特殊设备。一个字符特殊设备可进行随机访问,且访问的时候不带缓存。

系统能力:SystemCapability.FileManagement.File.FileIO

返回值:

类型

说明

boolean

表示当前目录项是否是字符特殊设备。

示例:

let dir = fileio.opendirSync(pathDir);
let isCharacterDevice = dir.readSync().isCharacterDevice(); 

isDirectory

isDirectory(): boolean

用于判断当前目录项是否是目录。

系统能力:SystemCapability.FileManagement.File.FileIO

返回值:

类型

说明

boolean

表示当前目录项是否是目录。

示例:

let dir = fileio.opendirSync(pathDir);
let isDirectory = dir.readSync().isDirectory(); 

isFIFO

isFIFO(): boolean

用于判断当前目录项是否是命名管道(有时也称为FIFO)。命名管道通常用于进程间通信。

系统能力:SystemCapability.FileManagement.File.FileIO

返回值:

类型

说明

boolean

表示当前目录项是否是FIFO。

示例:

let dir = fileio.opendirSync(pathDir);
let isFIFO = dir.readSync().isFIFO(); 

isFile

isFile(): boolean

用于判断当前目录项是否是普通文件。

系统能力:SystemCapability.FileManagement.File.FileIO

返回值:

类型

说明

boolean

表示当前目录项是否是普通文件。

示例:

let dir = fileio.opendirSync(pathDir);
let isFile = dir.readSync().isFile(); 

isSocket

isSocket(): boolean

用于判断当前目录项是否是套接字。

系统能力:SystemCapability.FileManagement.File.FileIO

返回值:

类型

说明

boolean

表示当前目录项是否是套接字。

示例:

let dir = fileio.opendirSync(pathDir);
let isSocket = dir.readSync().isSocket(); 

isSymbolicLink(): boolean

用于判断当前目录项是否是符号链接。

系统能力:SystemCapability.FileManagement.File.FileIO

返回值:

类型

说明

boolean

表示当前目录项是否是符号链接。

示例:

let dir = fileio.opendirSync(pathDir);
let isSymbolicLink = dir.readSync().isSymbolicLink();


文章转载自:​​https://developer.harmonyos.com/cn/docs/documentation/doc-references-V3/js-apis-fileio-0000001478181641-V3?catalogVersion=V3#ZH-CN_TOPIC_0000001478181641__issymboliclink-1​

已于2023-4-13 19:35:15修改
收藏
回复
举报
回复
    相关推荐