#鸿蒙学习大百科#如何将当前设备的某个文件变为可以被跨设备拷贝的文件(同一应用)?

如何将当前设备的某个文件变为可以被跨设备拷贝的文件(同一应用)?

HarmonyOS
2024-10-22 16:02:29
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
风间爱小新V

前提:完成了组网,同一局域网中,同帐号认证完成组网。

将文件放入沙箱的分布式文件路径即可以被跨设备拷贝。

import fs from '@ohos.file.fs';
import common from '@ohos.app.ability.common';
import fileUri from '@ohos.file.fileuri';
import { BusinessError } from '@ohos.base';

let context = getContext(this) as common.UIAbilityContext; // 获取设备A的UIAbilityContext信息
let pathDir: string = context.filesDir;
let distributedPathDir: string = context.distributedFilesDir;
// 待拷贝文件沙箱路径
let filePath: string = pathDir + '/src.txt';

try {
  // 文件不存在时,需要创建文件并写入内容
  let file = fs.openSync(filePath, fs.OpenMode.CREATE | fs.OpenMode.READ_WRITE);
  fs.writeSync(file.fd, 'Create file success');
  fs.closeSync(file);
} catch (error) {
  console.error(`Failed to createFile. Code: ${error.code}, message: ${error.message}`);
}

// 获取待拷贝文件uri
let srcUri = fileUri.getUriFromPath(filePath);

// 将待拷贝的沙箱文件,拷贝到分布式目录下
let destUri: string = fileUri.getUriFromPath(distributedPathDir + '/src.txt');

try {
  // 将沙箱路径下的文件拷贝到分布式路径下
  fs.copy(srcUri, destUri).then(()=>{
    console.info("Succeeded in copying---. ");
    console.info("src: " + srcUri + "dest: " + destUri);
  }).catch((error: BusinessError)=>{
    let err: BusinessError = error as BusinessError;
    console.info(`Failed to copy. Code: ${err.code}, message: ${err.message}`);
  })
} catch (error) {
  console.error(`Failed to getData. Code: ${error.code}, message: ${error.message}`);
}
分享
微博
QQ
微信
回复
2024-10-22 21:53:58
相关问题