拷贝文件或者目录
2024-12-04 14:49:16
281次阅读
0个评论
fs.copy(Promise异步返回)
copy(srcUri: string, destUri: string, options?: CopyOptions): Promise
拷贝文件或者目录,使用Promise异步返回。
支持跨设备拷贝。强制覆盖拷贝。入参支持文件或目录URI。 跨端拷贝时,限制同时最多存在10个拷贝任务;单次拷贝的文件数量不得超过500个。
参数:
| 参数名 | 类型 | 必填 | 说明 | 
|---|---|---|---|
| srcUri | string | 是 | 待复制文件或目录的uri。 | 
| destUri | string | 是 | 目标文件或目录的uri。 | 
| options | CopyOptions | 否 | options中提供拷贝进度回调。 | 
返回值:
| 类型 | 说明 | 
|---|---|
| Promise | Promise对象。无返回值。 | 
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
import { fileIo as fs } from '@kit.CoreFileKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { fileUri } from '@kit.CoreFileKit';
let srcDirPathLocal: string = pathDir + "/src";
let dstDirPathLocal: string = pathDir + "/dest";
let srcDirUriLocal: string = fileUri.getUriFromPath(srcDirPathLocal);
let dstDirUriLocal: string = fileUri.getUriFromPath(dstDirPathLocal);
let progressListener: fs.ProgressListener = (progress: fs.Progress) => {
  console.info(`progressSize: ${progress.processedSize}, totalSize: ${progress.totalSize}`);
};
let copyoption: fs.CopyOptions = {
  "progressListener" : progressListener
}
try {
  fs.copy(srcDirUriLocal, dstDirUriLocal, copyoption).then(()=>{
    console.info("Succeeded in copying. ");
  }).catch((err: BusinessError)=>{
    console.error(`Failed to copy: ${JSON.stringify(err)}`);
  })
} catch(err) {
  console.error(`Failed to copy: ${JSON.stringify(err)}`);
}
fs.copy(Callback异步回调1)
copy(srcUri: string, destUri: string, callback: AsyncCallback): void
拷贝文件或者目录,使用callback异步回调。
支持跨设备拷贝。强制覆盖拷贝。入参支持文件或目录URI。 跨端拷贝时,限制同时最多存在10个拷贝任务;单次拷贝的文件数量不得超过500个。
参数:
| 参数名 | 类型 | 必填 | 说明 | 
|---|---|---|---|
| srcUri | string | 是 | 待复制文件或目录的uri。 | 
| destUri | string | 是 | 目标文件或目录的uri。 | 
| callback | AsyncCallback | 是 | 异步拷贝之后的回调。 | 
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
import { BusinessError } from '@kit.BasicServicesKit';
import { fileUri } from '@kit.CoreFileKit';
let srcDirPathLocal: string = pathDir + "/src";
let dstDirPathLocal: string = pathDir + "/dest";
let srcDirUriLocal: string = fileUri.getUriFromPath(srcDirPathLocal);
let dstDirUriLocal: string = fileUri.getUriFromPath(dstDirPathLocal);
try {
  fs.copy(srcDirUriLocal, dstDirUriLocal, (err: BusinessError) => {
    if (err) {
      console.error(`Failed to copy: ${JSON.stringify(err)}`);
      return;
    }
    console.info("Succeeded in copying. ");
  })
} catch(err) {
  console.error(`Failed to copy: ${JSON.stringify(err)}`);
}
fs.copy(Callback异步回调2)
copy(srcUri: string, destUri: string, options: CopyOptions, callback: AsyncCallback): void
拷贝文件或者目录,使用callback异步回调。
支持跨设备拷贝。强制覆盖拷贝。入参支持文件或目录URI。 跨端拷贝时,限制同时最多存在10个拷贝任务;单次拷贝的文件数量不得超过500个
参数:
| 参数名 | 类型 | 必填 | 说明 | 
|---|---|---|---|
| srcUri | string | 是 | 待复制文件或目录的uri。 | 
| destUri | string | 是 | 目标文件或目录的uri。 | 
| options | CopyOptions | 是 | 拷贝进度回调。 | 
| callback | AsyncCallback | 是 | 异步拷贝之后的回调。 | 
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
import { fileIo as fs } from '@kit.CoreFileKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { fileUri } from '@kit.CoreFileKit';
let srcDirPathLocal: string = pathDir + "/src";
let dstDirPathLocal: string = pathDir + "/dest";
let srcDirUriLocal: string = fileUri.getUriFromPath(srcDirPathLocal);
let dstDirUriLocal: string = fileUri.getUriFromPath(dstDirPathLocal);
try {
  let progressListener: fs.ProgressListener = (progress: fs.Progress) => {
    console.info(`progressSize: ${progress.processedSize}, totalSize: ${progress.totalSize}`);
  };
  let copyoption: fs.CopyOptions = {
    "progressListener" : progressListener
  }
  fs.copy(srcDirUriLocal, dstDirUriLocal, copyoption, (err: BusinessError) => {
    if (err) {
      console.error(`Failed to copy: ${JSON.stringify(err)}`);
      return;
    }
    console.info("Succeeded in copying. ");
  })
} catch(err) {
  console.error(`Failed to copy: ${JSON.stringify(err)}`);
}
00

