HarmonyOS 鸿蒙Next 如何自动获取download或其他目录下文件夹下的图片

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

HarmonyOS 鸿蒙Next 如何自动获取download或其他目录下文件夹下的图片

需要读入大量图片,我把测试图片放在了xxx目录下,请问如何获取到这些图片呢
 

3 回复

不在应用沙箱下面的文件,不可能一下读取大量图片,要是能有一个公共目录文件夹的读权限,我的应用早就100%重写完成了,无限期搁置了,看后面版本给不给读权限了,不给我重新优化安卓代码,系统都不会升next

更多关于HarmonyOS 鸿蒙Next 如何自动获取download或其他目录下文件夹下的图片的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


图片不要放到rawfile下而是放到resfile下,就可以使用fs的能力了
参考链接资源分类与访问-基础入门 - 华为HarmonyOS开发者

let pathDir = getContext().resourceDir
    let listFileOption: ListFileOptions = {
      recursion: false,
      listNum: 0
    }
    fs.listFile(pathDir, listFileOption).then(async (filenames: Array<string>) => {
      console.info("listFile succeed");
      console.log(filenames.length.toString())
      console.log(json.stringify(filenames))
      for (let i = 0; i < filenames.length; i++) {
        let imageUri = pathDir + '/' + filenames[i]
        let file = fs.openSync(imageUri, fs.OpenMode.READ_ONLY);
        const imageSource: image.ImageSource = image.createImageSource(file.fd)
        let pixelMap: image.PixelMap = imageSource.createPixelMapSync()
        if (pixelMap != undefined) {
          let imageInfo: image.ImageInfo = pixelMap.getImageInfoSync()
          console.log(JSON.stringify(imageInfo))
        } else {
          console.log('pixelMap获取失败')
        }
      }
    }).catch((err: BusinessError) => {
      console.error("list file failed with error message: " + err.message + ", error code: " + err.code);
    });

在HarmonyOS鸿蒙Next系统中,自动获取download或其他目录下文件夹中的图片,可以通过文件访问API实现。以下是一个简要的方法:

  1. 权限申请:首先,确保你的应用已经申请并获得了访问存储的权限。在config.json文件中添加相关权限声明,例如ohos.permission.READ_EXTERNAL_STORAGE

  2. 路径构建:构建目标文件夹的路径。对于download目录,可以使用系统提供的目录API,如FileSystemManager.getDownloadsDir()获取下载目录路径。

  3. 文件遍历:使用FileDirectory类来遍历目录,筛选出图片文件(通常通过文件扩展名,如.jpg, .png等)。

  4. 读取文件:对于每个筛选出的文件,可以使用文件读取API来获取文件内容或文件信息。

示例代码(伪代码):

let fileSysManager = file.getFileSystemManager();
let downloadsDir = fileSysManager.getDownloadsDir();

function getImagesInDir(dirPath) {
    // 遍历目录,筛选图片文件
    // 返回图片文件列表
}

let images = getImagesInDir(downloadsDir);

注意:实际开发中,需要处理文件访问异常,确保代码健壮性。

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

回到顶部