HarmonyOS 资源文件读取和临时文件存储提示路径不存在或者没有写权限?

  1. app工程需要一些配置文件,已经放到了工程目录的/entry/src/main/resources/resfile/下,工程代码中通过 getContext(this)的.resourceDir可以获取正确的配置文件。 请问是否有介绍context中不同dir与工程中目录之间对应关系的介绍文档?
  2. 在我SDK的C++代码中,需要在指定目录下有读写权限,用于保存临时文件,此时通过C代码的 access(path, F\_OK | W\_OK)总是判断为无权限,想请教下如果app的arkts代码里、SDK的c++代码里 想在手机上保存一些临时文件,需要用哪个目录、需要什么辅助操作呢?
阅读 473
1 个回答

1.context中不同dir与工程中目录之间对应关系可以参考此文档:

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/application-context-stage-V5

2.目前并无相关Native接口可以直接写文件,可以通过C++基础库结合沙箱路径实现写文件操作。

#include "WriteFile.h"
#include "napi/native_api.h"
#include <fstream>
napi_value WriteFile::WriteTemporaryFile(napi_env env, napi_callback_info info) {
    std::ofstream file("data/storage/el2/base/temp/2.txt");
    if (file.is_open()) {        // 判断能否正常打开文件
        file << "Hello, World!"; // 向文件写入内容
        file.close();            // 关闭文件
    }
    return nullptr;
}

用户可访问的目录可参考以下链接:

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/app-sandbox-directory-V5

logo
HarmonyOS
子站问答
访问
宣传栏