HarmonyOS 鸿蒙Next 文件拷贝

发布于 1周前 作者 htzhanglong 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 文件拷贝

  1. 如何把其他沙箱的文件 拷贝到自己app内的沙箱 其他沙箱无权限操作

    @ohos.file.fs (文件管理)

  2. https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-file-fs-V5#fsmkdir

    创建目录的 有没有创建文件的操作,

  3. 调用https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-file-fs-V5#fscopyfile 拷贝文件 需要目标文件先创建吗

  4. 拿到系统相册的文件路径,为什么调用openSync(path: string, mode?: number): File 也是没操作权限的


更多关于HarmonyOS 鸿蒙Next 文件拷贝的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

你好 1:无法访问别的app沙箱目录,例如获取相册的图片,拿到uri后,手动保存到自己沙箱路径。 2:设置好路径后,然后使用open,打开文件,即创建文件,然后往里面写入内容 3:可以通过fs.open,打开文件,然后往里面写入文件 4:参考demo:

import { BusinessError } from '@kit.BasicServicesKit';
import { photoAccessHelper } from '@kit.MediaLibraryKit';
import fileIo from '@ohos.file.fs';
let context = this.getContext()

@Entry
@Component
struct FilePage {

  build() {
    Column() {
      Button("相册选择").onClick(() => {
        try {
          let PhotoSelectOptions = new photoAccessHelper.PhotoSelectOptions();
          PhotoSelectOptions.MIMEType = photoAccessHelper.PhotoViewMIMETypes.IMAGE_TYPE;
          PhotoSelectOptions.maxSelectNumber = 1;
          let photoPicker = new photoAccessHelper.PhotoViewPicker();
          photoPicker.select(PhotoSelectOptions).then(async (PhotoSelectResult: photoAccessHelper.PhotoSelectResult) => {
            console.error('PhotoViewPicker.select successfully, PhotoSelectResult uri: ' + JSON.stringify(PhotoSelectResult));
            let filePath =  context.cacheDir + '/test.png'
            let file = fileIo.openSync(PhotoSelectResult.photoUris[0], fileIo.OpenMode.READ_ONLY)
            let file2 = fileIo.openSync(filePath, fileIo.OpenMode.READ_WRITE | fileIo.OpenMode.CREATE)
            fileIo.copyFileSync(file.fd, file2.fd)
            fileIo.closeSync(file);
            fileIo.closeSync(file2);
          }).catch((err: BusinessError) => {
            console.error(`PhotoViewPicker.select failed with err: ${err.code}, ${err.message}`);
          });
        } catch (error) {
          let err: BusinessError = error as BusinessError;
          console.error(`PhotoViewPicker failed with err: ${err.code}, ${err.message}`);
        }
      })
    }
    .height('100%')
    .width('100%')
  }
}

更多关于HarmonyOS 鸿蒙Next 文件拷贝的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


针对“HarmonyOS 鸿蒙Next 文件拷贝”的问题,以下提供直接相关的专业回答:

在HarmonyOS鸿蒙Next系统中,文件拷贝操作通常依赖于系统提供的API或框架来实现。HarmonyOS提供了丰富的文件操作能力,允许开发者在应用程序中执行文件读写、复制、移动等操作。

具体来说,文件拷贝可以通过以下方式实现:

  1. 使用文件管理器API:HarmonyOS提供了文件管理器服务,开发者可以通过调用相关API来访问文件系统,并执行文件拷贝操作。这些API通常封装了对底层文件系统的访问细节,提供了更高层次的抽象。

  2. 利用媒体存储服务:对于多媒体文件(如图片、音频、视频等),HarmonyOS提供了媒体存储服务,允许开发者以更高效、安全的方式管理这些文件。开发者可以通过媒体存储服务API来执行文件拷贝等操作。

  3. 第三方库或框架:在HarmonyOS应用中,也可以使用一些第三方库或框架来简化文件拷贝操作。这些库或框架通常提供了更易于使用的接口,可以减少开发者的编码工作量。

请注意,在进行文件拷贝操作时,应确保目标位置有足够的存储空间,并处理好可能的异常情况,如文件不存在、目标位置不可写等。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部