复制源文件夹至目标路径下

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

登录 后评论。没有帐号? 注册 一个。