提交 b7cf68cc 编写于 作者: 1 18721213663 提交者: zhangkaixiang

fs_add_movefile&listfile&filelock

Signed-off-by: N18721213663 <zhuhongtao12@huawei.com>
上级 b0c91265
......@@ -1559,6 +1559,239 @@ symlinkSync(target: string, srcPath: string): void
fs.symlinkSync(srcFile, dstFile);
```
## fs.listFile
listFile(path: string, options?: {
recursion?: boolean;
listNum?: number;
filter?: Filter;
}): Promise<string[]>;
列出文件夹下所有文件名,支持递归列出所有文件名(包含子目录下),支持文件过滤,使用Promise异步回调。
**系统能力**:SystemCapability.FileManagement.File.FileIO
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | --------------------------- |
| path | string | 是 | 文件夹的应用沙箱路径。 |
| options | Object | 否 | 文件过滤选项。 |
**options参数说明:**
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | --------------------------- |
| recursion | boolean | 否 | 是否递归子目录下文件名,默认为false。 |
| listNum | number | 否 | 列出文件名数量。当设置0时,列出所有文件,默认为0。 |
| filter | [Filter](#filter) | 否 | 文件过滤选项。当前仅支持后缀名匹配、文件名模糊查询、文件大小过滤、最近修改时间过滤。 |
**返回值:**
| 类型 | 说明 |
| --------------------- | ---------- |
| Promise&lt;string[]&gt; | Promise对象。返回文件名数组。 |
**示例:**
```js
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.size; i++) {
console.info("fileName: %s", filenames[i]);
}
}).catch((err) => {
console.info("list file failed with error message: " + err.message + ", error code: " + err.code);
});
```
## fs.listFile
listFile(path: string, options?: {
recursion?: boolean;
listNum?: number;
filter?: Filter;
}, callback: AsyncCallback<string[]>): void;
列出文件夹下所有文件名,支持递归列出所有文件名(包含子目录下),支持文件过滤,使用Callback异步回调。
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | --------------------------- |
| path | string | 是 | 文件夹的应用沙箱路径。 |
| options | Object | 否 | 文件过滤选项。 |
| callback | AsyncCallback&lt;string[]&gt; | 是 | 异步列出文件名数组之后的回调。 |
**options参数说明:**
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | --------------------------- |
| recursion | boolean | 否 | 是否递归子目录下文件名,默认为false。 |
| listNum | number | 否 | 列出文件名数量。当设置0时,列出所有文件,默认为0。 |
| filter | [Filter](#filter) | 否 | 文件过滤选项。当前仅支持后缀名匹配、文件名模糊查询、文件大小过滤、最近修改时间过滤。 |
**示例:**
```js
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.info("list file failed with error message: " + err.message + ", error code: " + err.code);
} else {
console.info("listFile succeed");
for (let i = 0; i < filenames.size; i++) {
console.info("filename: %s", filenames[i]);
}
}
});
```
## listFileSync
listFileSync(path: string, options?: {
recursion?: boolean;
listNum?: number;
filter?: Filter;
}): string[];
以同步方式列出文件夹下所有文件名,支持递归列出所有文件名(包含子目录下),支持文件过滤。
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | --------------------------- |
| path | string | 是 | 文件夹的应用沙箱路径。 |
| options | Object | 否 | 文件过滤选项。 |
**options参数说明:**
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | --------------------------- |
| recursion | boolean | 否 | 是否递归子目录下文件名,默认为false。 |
| listNum | number | 否 | 列出文件名数量。当设置0时,列出所有文件,默认为0。 |
| filter | [Filter](#filter) | 否 | 文件过滤选项。当前仅支持后缀名匹配、文件名模糊查询、文件大小过滤、最近修改时间过滤。 |
**返回值:**
| 类型 | 说明 |
| --------------------- | ---------- |
| string[] | 返回文件名数组。 |
**示例:**
```js
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.size; i++) {
console.info("filename: %s", filenames[i]);
}
```
## moveFile
moveFile(src: string, dest: string, mode?: number): Promise<void>;
移动文件,使用Promise异步回调。
**系统能力**:SystemCapability.FileManagement.File.FileIO
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | --------------------------- |
| src | string | 是 | 源文件的应用沙箱路径。 |
| dest | string | 是 | 目的文件的应用沙箱路径。 |
| mode | number | 否 | 移动模式。若mode为0,移动位置存在同名文件时,强制移动覆盖。若mode为1,移动位置存在同名文件时,抛出异常。默认为0。 |
**示例:**
```js
fs.moveFile(srcPath, destPath, 0).then(() => {
console.info("move file succeed");
}).catch((err) => {
console.info("move file failed with error message: " + err.message + ", error code: " + err.code);
});
```
## moveFile
moveFile(src: string, dest: string, mode?: number, callback: AsyncCallback<void>): void;
移动文件,使用Callback异步回调。
**系统能力**:SystemCapability.FileManagement.File.FileIO
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | --------------------------- |
| src | string | 是 | 源文件的应用沙箱路径。 |
| dest | string | 是 | 目的文件的应用沙箱路径。 |
| mode | number | 否 | 移动模式。若mode为0,移动位置存在同名文件时,强制移动覆盖。若mode为1,移动位置存在同名文件时,抛出异常。默认为0。 |
| callback | AsyncCallback&lt;void&gt; | 是 | 异步移动文件之后的回调。 |
**示例:**
```js
fs.moveFile(srcPath, destPath, 0, (err) => {
if (err) {
console.info("move file failed with error message: " + err.message + ", error code: " + err.code);
} else {
console.info("move file succeed");
}
});
```
## moveFileSync
moveFile(src: string, dest: string, mode?: number): void;
以同步方式移动文件。
**系统能力**:SystemCapability.FileManagement.File.FileIO
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | --------------------------- |
| src | string | 是 | 源文件的应用沙箱路径。 |
| dest | string | 是 | 目的文件的应用沙箱路径。 |
| mode | number | 否 | 移动模式。若mode为0,移动位置存在同名文件时,强制移动覆盖。若mode为1,移动位置存在同名文件时,抛出异常。默认为0。 |
**示例:**
```js
fs.moveFileSync(srcPath, destPath, 0);
console.info("move file succeed");
```
## fs.mkdtemp
mkdtemp(prefix: string): Promise&lt;string&gt;
......@@ -2353,6 +2586,104 @@ readSync(buffer: ArrayBuffer, options?: { offset?: number; length?: number; }):
| ---- | ------ | ---- | ---- | ------- |
| fd | number | 是 | 否 | 打开的文件描述符。 |
### lock
lock(exclusive?: boolean): Promise<void>;
文件阻塞式施加共享锁或独占锁,使用Promise异步回调。
**系统能力**:SystemCapability.FileManagement.File.FileIO
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------- | ----------- | ---- | ---------------------------------------- |
| exclusive | boolean | 否 | 是否施加独占锁,默认false。 |
**返回值:**
| 类型 | 说明 |
| ---------------------------------- | ------ |
| Promise&lt;void&gt; | Promise对象。无返回值。 |
**示例:**
```js
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
lock(exclusive?: boolean, callback: AsyncCallback<void>): void;
文件阻塞式施加共享锁或独占锁,使Callback异步回调。
**系统能力**:SystemCapability.FileManagement.File.FileIO
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------- | ----------- | ---- | ---------------------------------------- |
| exclusive | boolean | 否 | 是否施加独占锁,默认false。 |
| callback | AsyncCallback&lt;void&gt; | 是 | 异步文件上锁之后的回调。 |
**示例:**
```js
let file = fs.openSync(path, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
file.lock(true, (err) => {
if (err) {
console.info("lock file failed with error message: " + err.message + ", error code: " + err.code);
} else {
console.log("lock file successful");
}
});
```
### tryLock
tryLock(exclusive?: boolean): void;
文件非阻塞式施加共享锁或独占锁。
**系统能力**:SystemCapability.FileManagement.File.FileIO
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------- | ----------- | ---- | ---------------------------------------- |
| exclusive | boolean | 否 | 是否施加独占锁,默认false。 |
**示例:**
```js
let file = fs.openSync(path, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
file.tryLock(true);
console.log("lock file successful");
```
### unlock
unlock(): void;
以同步方式给文件解锁。
**系统能力**:SystemCapability.FileManagement.File.FileIO
**示例:**
```js
let file = fs.openSync(path, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
file.tryLock(true);
file.unlock();
console.log("unlock file successful");
```
## OpenMode
open接口flags参数常量。文件打开标签。
......@@ -2371,3 +2702,18 @@ open接口flags参数常量。文件打开标签。
| DIR | number | 0o200000 | 如果path不指向目录,则出错。 |
| NOFOLLOW | number | 0o400000 | 如果path指向符号链接,则出错。 |
| SYNC | number | 0o4010000 | 以同步IO的方式打开文件。 |
## Filter
**系统能力**:SystemCapability.FileManagement.File.FileIO
文件过滤配置项类型,支持listFile接口使用。
| 名称 | 类型 | 说明 |
| ----------- | --------------- | ------------------ |
| suffix | Array&lt;string&gt; | 文件后缀名完全匹配,各个关键词OR关系。 |
| displayName | Array&lt;string&gt; | 文件名模糊匹配,各个关键词OR关系。 |
| mimeType | Array&lt;string&gt; | mime类型完全匹配,各个关键词OR关系。 |
| fileSizeOver | number | 文件大小匹配,大于等于指定大小的文件。 |
| lastModifiedAfter | number | 文件最近修改时间匹配,在指定时间点及之后的文件。 |
| excludeMedia | boolean | 是否排除Media中已有的文件。 |
......@@ -3434,20 +3434,3 @@ isSymbolicLink(): boolean
let dir = fileio.opendirSync(pathDir);
let isSymbolicLink = dir.readSync().isSymbolicLink();
```
## Filter<sup>9+</sup>
**系统接口**:此接口为系统接口。
**系统能力**:SystemCapability.FileManagement.File.FileIO
文件过滤器配置项。
| 名称 | 类型 | 说明 |
| ----------- | --------------- | ------------------ |
| suffix | Array&lt;string&gt; | 文件后缀名,各个关键词OR关系。 |
| displayName | Array&lt;string&gt; | 文件名模糊匹配,各个关键词OR关系。 |
| mimeType | Array&lt;string&gt; | mime类型匹配,各个关键词OR关系。 |
| fileSizeOver | number | 文件大小匹配,大于等于指定大小的文件。 |
| lastModifiedAfter | Date | 修改时间匹配,在指定时间点后的文件。 |
| excludeMedia | Boolean | 是否排除Media中已有的文件。 |
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册