Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
ba6f195a
D
Docs
项目概览
OpenHarmony
/
Docs
大约 1 年 前同步成功
通知
159
Star
292
Fork
28
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
Docs
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
ba6f195a
编写于
5月 09, 2023
作者:
O
openharmony_ci
提交者:
Gitee
5月 09, 2023
浏览文件
操作
浏览文件
下载
差异文件
!17969 fs新增copyDir能力
Merge pull request !17969 from zhuhongtao666/copydir
上级
ab71ae95
8a6bd817
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
104 addition
and
6 deletion
+104
-6
zh-cn/application-dev/reference/apis/js-apis-file-fs.md
zh-cn/application-dev/reference/apis/js-apis-file-fs.md
+104
-6
未找到文件。
zh-cn/application-dev/reference/apis/js-apis-file-fs.md
浏览文件 @
ba6f195a
...
...
@@ -447,6 +447,93 @@ copyFileSync(src: string|number, dest: string|number, mode?: number): void
fs
.
copyFileSync
(
srcPath
,
dstPath
);
```
## fs.copyDir<sup>10+</sup>
copyDir(src: string, dest: string, mode?: number): Promise
\<
void>
复制源文件夹至目标路径下,使用Promise异步回调。
**系统能力**
:SystemCapability.FileManagement.File.FileIO
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | --------------------------- |
| src | string | 是 | 源文件夹的应用沙箱路径。 |
| dest | string | 是 | 目标文件夹的应用沙箱路径。 |
| mode | number | 否 | 复制模式。默认mode为0。
<br/>
-
mode为0,文件级别抛异常。目标文件夹下存在与源文件夹名冲突的文件夹,若冲突文件夹下存在同名文件,则抛出异常。源文件夹下未冲突的文件全部移动至目标文件夹下,目标文件夹下未冲突文件将继续保留,且冲突文件信息将在抛出异常的data属性中以Array
\<
[
ConflictFiles
](
#conflictfiles
)
>形式提供。
<br/>
-
mode为1,文件级别强制覆盖。目标文件夹下存在与源文件夹名冲突的文件夹,若冲突文件夹下存在同名文件,则强制覆盖冲突文件夹下所有同名文件,未冲突文件将继续保留。|
**返回值:**
| 类型 | 说明 |
| ------------------- | ---------------------------- |
| Promise
<
void
>
| Promise对象。无返回值。 |
**错误码:**
接口抛出错误码的详细介绍请参见
[
基础文件IO错误码
](
../errorcodes/errorcode-filemanagement.md#基础文件io错误码
)
。
**示例:**
```
js
// copy directory from srcPath to destPath
let
srcPath
=
pathDir
+
"
/srcDir/
"
;
let
destPath
=
pathDir
+
"
/destDir/
"
;
fs
.
copyDir
(
srcPath
,
destPath
,
0
).
then
(()
=>
{
console
.
info
(
"
copy directory succeed
"
);
}).
catch
((
err
)
=>
{
if
(
err
.
code
==
13900015
)
{
for
(
let
i
=
0
;
i
<
err
.
data
.
length
;
i
++
)
{
console
.
info
(
"
copy directory failed with conflicting files:
"
+
err
.
data
[
i
].
srcFile
+
"
"
+
err
.
data
[
i
].
destFile
);
}
}
else
{
console
.
info
(
"
copy directory failed with error message:
"
+
err
.
message
+
"
, error code:
"
+
err
.
code
);
}
});
```
## fs.copyDir<sup>10+</sup>
copyDir(src: string, dest: string, mode?: number, callback: AsyncCallback
\<
void>): void
复制源文件夹至目标路径下,使用Callback异步回调。
**系统能力**
:SystemCapability.FileManagement.File.FileIO
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | --------------------------- |
| src | string | 是 | 源文件夹的应用沙箱路径。 |
| dest | string | 是 | 目标文件夹的应用沙箱路径。 |
| mode | number | 否 | 复制模式。默认mode为0。
<br/>
-
mode为0,文件级别抛异常。目标文件夹下存在与源文件夹名冲突的文件夹,若冲突文件夹下存在同名文件,则抛出异常。源文件夹下未冲突的文件全部移动至目标文件夹下,目标文件夹下未冲突文件将继续保留,且冲突文件信息将在抛出异常的data属性中以Array
\<
[
ConflictFiles
](
#conflictfiles
)
>形式提供。
<br/>
-
mode为1,文件级别强制覆盖。目标文件夹下存在与源文件夹名冲突的文件夹,若冲突文件夹下存在同名文件,则强制覆盖冲突文件夹下所有同名文件,未冲突文件将继续保留。|
| callback | AsyncCallback
<
void
>
| 是 | 异步复制文件夹之后的回调。 |
**错误码:**
接口抛出错误码的详细介绍请参见
[
基础文件IO错误码
](
../errorcodes/errorcode-filemanagement.md#基础文件io错误码
)
。
**示例:**
```
js
// copy directory from srcPath to destPath
let
srcPath
=
pathDir
+
"
/srcDir/
"
;
let
destPath
=
pathDir
+
"
/destDir/
"
;
fs
.
copyDir
(
srcPath
,
destPath
,
0
,
(
err
)
=>
{
if
(
err
&&
err
.
code
==
13900015
)
{
for
(
let
i
=
0
;
i
<
err
.
data
.
length
;
i
++
)
{
console
.
info
(
"
copy directory failed with conflicting files:
"
+
err
.
data
[
i
].
srcFile
+
"
"
+
err
.
data
[
i
].
destFile
);
}
}
else
if
(
err
)
{
console
.
info
(
"
copy directory failed with error message:
"
+
err
.
message
+
"
, error code:
"
+
err
.
code
);
}
else
{
console
.
info
(
"
copy directory succeed
"
);
}
});
```
## fs.mkdir
mkdir(path: string): Promise
<
void
>
...
...
@@ -1924,8 +2011,8 @@ moveDir(src: string, dest: string, mode?: number): Promise\<void>
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | --------------------------- |
| src | string | 是 | 源文件夹的应用沙箱路径。 |
| dest | string | 是 | 目标应用沙箱路径。 |
| mode | number | 否 | 移动模式。默认mode为0。
<br/>
-
mode为0,文件夹级别抛异常。若目标
路径存在与源文件夹名冲突的文件夹,则抛出异常。
<br/>
-
mode为1,文件级别抛异常。目标路径存在与源文件夹名冲突的文件夹,若此目标文件夹下存在与源文件夹下同名文件,则抛出异常。源文件夹下未冲突的文件全部移动至此目标文件夹下,此目标文件夹下未冲突文件将继续保留,且冲突文件信息将在抛出异常的data属性中提供。
<br/>
-
mode为2,文件级别强制覆盖。目标路径存在与源文件夹名冲突的文件夹,若此目标文件夹下存在与源文件夹下同名文件,则强制覆盖此目标文件夹下所有同名文件。目标文件夹下未冲突文件将继续保留。
<br/>
-
mode为3,文件夹级别强制覆盖。移动源文件夹至目标路径下,目标文件夹与源文件夹内容完全一致。目标
文件夹下所有原始文件将不会保留。|
| dest | string | 是 | 目标
文件夹的
应用沙箱路径。 |
| mode | number | 否 | 移动模式。默认mode为0。
<br/>
-
mode为0,文件夹级别抛异常。若目标
文件夹下存在与源文件夹名冲突的文件夹,则抛出异常。
<br/>
-
mode为1,文件级别抛异常。目标文件夹下存在与源文件夹名冲突的文件夹,若冲突文件夹下存在同名文件,则抛出异常。源文件夹下未冲突的文件全部移动至目标文件夹下,目标文件夹下未冲突文件将继续保留,且冲突文件信息将在抛出异常的data属性中以Array\
<
[
ConflictFiles
](
#conflictfiles
)
>
形式提供。
<br/>
-
mode为2,文件级别强制覆盖。目标文件夹下存在与源文件夹名冲突的文件夹,若冲突文件夹下存在同名文件,则强制覆盖冲突文件夹下所有同名文件,未冲突文件将继续保留。
<br/>
-
mode为3,文件夹级别强制覆盖。移动源文件夹至目标文件夹下,目标文件夹下移动的文件夹内容与源文件夹完全一致。若目标文件夹下存在与源文件夹名冲突的文件夹,该
文件夹下所有原始文件将不会保留。|
**返回值:**
...
...
@@ -1940,7 +2027,7 @@ moveDir(src: string, dest: string, mode?: number): Promise\<void>
**示例:**
```
js
// move directory from srcPath to destPath
/srcPath
// move directory from srcPath to destPath
let
srcPath
=
pathDir
+
"
/srcDir/
"
;
let
destPath
=
pathDir
+
"
/destDir/
"
;
fs
.
moveDir
(
srcPath
,
destPath
,
1
).
then
(()
=>
{
...
...
@@ -1970,8 +2057,8 @@ moveDir(src: string, dest: string, mode?: number, callback: AsyncCallback\<void>
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | --------------------------- |
| src | string | 是 | 源文件夹的应用沙箱路径。 |
| dest | string | 是 | 目标应用沙箱路径。 |
| mode | number | 否 | 移动模式。默认mode为0。
<br/>
-
mode为0,文件夹级别抛异常。若目标
路径存在与源文件夹名冲突的文件夹,则抛出异常。
<br/>
-
mode为1,文件级别抛异常。目标路径存在与源文件夹名冲突的文件夹,若此目标文件夹下存在与源文件夹下同名文件,则抛出异常。源文件夹下未冲突的文件全部移动至此目标文件夹下,此目标文件夹下未冲突文件将继续保留,且冲突文件信息将在抛出异常的data属性中提供。
<br/>
-
mode为2,文件级别强制覆盖。目标路径存在与源文件夹名冲突的文件夹,若此目标文件夹下存在与源文件夹下同名文件,则强制覆盖此目标文件夹下所有同名文件。目标文件夹下未冲突文件将继续保留。
<br/>
-
mode为3,文件夹级别强制覆盖。移动源文件夹至目标路径下,目标文件夹与源文件夹内容完全一致。目标
文件夹下所有原始文件将不会保留。|
| dest | string | 是 | 目标
文件夹的
应用沙箱路径。 |
| mode | number | 否 | 移动模式。默认mode为0。
<br/>
-
mode为0,文件夹级别抛异常。若目标
文件夹下存在与源文件夹名冲突的文件夹,则抛出异常。
<br/>
-
mode为1,文件级别抛异常。目标文件夹下存在与源文件夹名冲突的文件夹,若冲突文件夹下存在同名文件,则抛出异常。源文件夹下未冲突的文件全部移动至目标文件夹下,目标文件夹下未冲突文件将继续保留,且冲突文件信息将在抛出异常的data属性中以Array\
<
[
ConflictFiles
](
#conflictfiles
)
>
形式提供。
<br/>
-
mode为2,文件级别强制覆盖。目标文件夹下存在与源文件夹名冲突的文件夹,若冲突文件夹下存在同名文件,则强制覆盖冲突文件夹下所有同名文件,未冲突文件将继续保留。
<br/>
-
mode为3,文件夹级别强制覆盖。移动源文件夹至目标文件夹下,目标文件夹下移动的文件夹内容与源文件夹完全一致。若目标文件夹下存在与源文件夹名冲突的文件夹,该
文件夹下所有原始文件将不会保留。|
| callback | AsyncCallback
<
void
>
| 是 | 异步移动文件夹之后的回调。 |
**错误码:**
...
...
@@ -1981,7 +2068,7 @@ moveDir(src: string, dest: string, mode?: number, callback: AsyncCallback\<void>
**示例:**
```
js
// move directory from srcPath to destPath
/srcPath
// move directory from srcPath to destPath
let
srcPath
=
pathDir
+
"
/srcDir/
"
;
let
destPath
=
pathDir
+
"
/destDir/
"
;
fs
.
moveDir
(
srcPath
,
destPath
,
1
,
(
err
)
=>
{
...
...
@@ -3266,3 +3353,14 @@ open接口flags参数常量。文件打开标签。
| fileSizeOver | number | 文件大小匹配,大于等于指定大小的文件。 |
| lastModifiedAfter | number | 文件最近修改时间匹配,在指定时间点及之后的文件。 |
| excludeMedia | boolean | 是否排除Media中已有的文件。 |
## ConflictFiles
**系统能力**
:SystemCapability.FileManagement.File.FileIO
冲突文件信息,支持copyDir及moveDir接口使用。
| 名称 | 类型 | 说明 |
| ----------- | --------------- | ------------------ |
| srcFile | string | 源冲突文件路径。 |
| destFile | string | 目标冲突文件路径。 |
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录