NDK C ++在内部存储中创建文件(并对其进行读/写)

时间:2015-10-28 13:49:31

标签: java android c++ android-ndk

我必须解决我似乎无法解决的问题:

我有一个带有Activity的Android应用程序,它通过JNI将内部存储路径传递给C ++:

getFilesDir().getAbsolutePath() //this passed to C++ over JNI

我也尝试了类似的变体:

getDir("data", MODE_PRIVATE).toString()

但是当我到达C ++时,我有以下代码:

const char *path = (pathFromJava + "/someFileName.txt").c_str();
std::ofstream stream;
        try {

        stream.open(path);

        if(stream.good()) {
            stream << someDataToWrite;

            stream.close();
        }
    }
    catch (std::ios_base::failure& e) {
        std::cout << "Error no: " << strerror(errno);
    }

在上面尝试“打开”文件时,我们到达“catch”语句并打印出:“没有这样的文件或目录”。

(std :: ios_base :: failure e没有有意义的消息(ios失败就是说=(e.what()))

从Java传递的路径如下:“blablub / data / package.name / files”。 (似乎很好) 通常打开流时,通常应该在不存在时创建文件。

我还没有找到有关内部存储所需权限的任何内容。

我可能需要先用Java创建文件吗? 或者这条路可能不是正确的路径?

先感谢您提供一些提示

  • 帕斯卡

PS:我在IOS中再次使用同一个应用程序的C ++代码 - 所以用Java编写文件会破坏使用C ++尽可能多的代码的目的。

0 个答案:

没有答案