复制源文件夹至目标路径下
2024-12-04 15:18:48
143次阅读
0个评论
fs.copyDir(Promise异步返回)
copyDir(src: string, dest: string, mode?: number): Promise
复制源文件夹至目标路径下,使用Promise异步返回。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
src | string | 是 | 源文件夹的应用沙箱路径。 |
dest | string | 是 | 目标文件夹的应用沙箱路径。 |
mode | number | 否 | 复制模式。默认mode为0。 - mode为0,文件级别抛异常。目标文件夹下存在与源文件夹名冲突的文件夹,若冲突文件夹下存在同名文件,则抛出异常。源文件夹下未冲突的文件全部移动至目标文件夹下,目标文件夹下未冲突文件将继续保留,且冲突文件信息将在抛出异常的data属性中以Array形式提供。 - mode为1,文件级别强制覆盖。目标文件夹下存在与源文件夹名冲突的文件夹,若冲突文件夹下存在同名文件,则强制覆盖冲突文件夹下所有同名文件,未冲突文件将继续保留。 |
返回值:
类型 | 说明 |
---|---|
Promise | Promise对象。无返回值。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
import { BusinessError } from '@kit.BasicServicesKit';
// 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: BusinessError) => {
console.error("copy directory failed with error message: " + err.message + ", error code: " + err.code);
});
fs.copyDir(Callback异步返回)
copyDir(src: string, dest: string, mode: number, callback: AsyncCallback<void, Array>): void
复制源文件夹至目标路径下,可设置复制模式。使用callback异步回调。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
src | string | 是 | 源文件夹的应用沙箱路径。 |
dest | string | 是 | 目标文件夹的应用沙箱路径。 |
mode | number | 是 | 复制模式。默认mode为0。 - mode为0,文件级别抛异常。目标文件夹下存在与源文件夹名冲突的文件夹,若冲突文件夹下存在同名文件,则抛出异常。源文件夹下未冲突的文件全部移动至目标文件夹下,目标文件夹下未冲突文件将继续保留,且冲突文件信息将在抛出异常的data属性中以Array形式提供。 - mode为1,文件级别强制覆盖。目标文件夹下存在与源文件夹名冲突的文件夹,若冲突文件夹下存在同名文件,则强制覆盖冲突文件夹下所有同名文件,未冲突文件将继续保留。 |
callback | AsyncCallback<void, Array | 是 | 异步复制文件夹之后的回调。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
import { BusinessError } from '@kit.BasicServicesKit';
import { fileIo as fs, ConflictFiles } from '@kit.CoreFileKit';
// copy directory from srcPath to destPath
let srcPath = pathDir + "/srcDir/";
let destPath = pathDir + "/destDir/";
fs.copyDir(srcPath, destPath, 0, (err: BusinessError<Array<ConflictFiles>>) => {
if (err && err.code == 13900015 && err.data?.length !== undefined) {
for (let i = 0; i < err.data.length; i++) {
console.error("copy directory failed with conflicting files: " + err.data[i].srcFile + " " + err.data[i].destFile);
}
} else if (err) {
console.error("copy directory failed with error message: " + err.message + ", error code: " + err.code);
} else {
console.info("copy directory succeed");
}
});
copyDir(src: string, dest: string, callback: AsyncCallback<void, Array>): void
复制源文件夹至目标路径下,使用Callback异步回调。
当目标文件夹下存在与源文件夹名冲突的文件夹,若冲突文件夹下存在同名文件,则抛出异常。源文件夹下未冲突的文件全部移动至目标文件夹下,目标文件夹下未冲突文件将继续保留,且冲突文件信息将在抛出异常的data属性中以Array形式提供。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
src | string | 是 | 源文件夹的应用沙箱路径。 |
dest | string | 是 | 目标文件夹的应用沙箱路径。 |
callback | AsyncCallback<void, Array | 是 | 异步复制文件夹之后的回调。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
import { BusinessError } from '@kit.BasicServicesKit';
import { fileIo as fs, ConflictFiles } from '@kit.CoreFileKit';
// copy directory from srcPath to destPath
let srcPath = pathDir + "/srcDir/";
let destPath = pathDir + "/destDir/";
fs.copyDir(srcPath, destPath, (err: BusinessError<Array<ConflictFiles>>) => {
if (err && err.code == 13900015 && err.data?.length !== undefined) {
for (let i = 0; i < err.data.length; i++) {
console.error("copy directory failed with conflicting files: " + err.data[i].srcFile + " " + err.data[i].destFile);
}
} else if (err) {
console.error("copy directory failed with error message: " + err.message + ", error code: " + err.code);
} else {
console.info("copy directory succeed");
}
});
fs.copyDirSync
copyDirSync(src: string, dest: string, mode?: number): void
以同步方法复制源文件夹至目标路径下。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
src | string | 是 | 源文件夹的应用沙箱路径。 |
dest | string | 是 | 目标文件夹的应用沙箱路径。 |
mode | number | 否 | 复制模式。默认mode为0。 - mode为0,文件级别抛异常。目标文件夹下存在与源文件夹名冲突的文件夹,若冲突文件夹下存在同名文件,则抛出异常。源文件夹下未冲突的文件全部移动至目标文件夹下,目标文件夹下未冲突文件将继续保留,且冲突文件信息将在抛出异常的data属性中以Array形式提供。 - mode为1,文件级别强制覆盖。目标文件夹下存在与源文件夹名冲突的文件夹,若冲突文件夹下存在同名文件,则强制覆盖冲突文件夹下所有同名文件,未冲突文件将继续保留。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
import { BusinessError } from '@kit.BasicServicesKit';
// copy directory from srcPath to destPath
let srcPath = pathDir + "/srcDir/";
let destPath = pathDir + "/destDir/";
try {
fs.copyDirSync(srcPath, destPath, 0);
console.info("copy directory succeed");
} catch (error) {
let err: BusinessError = error as BusinessError;
console.error("copy directory failed with error message: " + err.message + ", error code: " + err.code);
}
00