为什么即使我已将create标志设置为true,getFile()也不会创建任何文件?

时间:2015-09-28 18:21:07

标签: javascript android file cordova hybrid

我试图在文件中写入一些数据并将其保存在移动设备的内部存储器中。我正在开发一个安装了cordova-plugin文件的cordova项目。一切似乎没有错误,但没有创建文件,所以没有数据保存... 即使我将create标志设置为true,为什么还没有getFile()创建任何文件?

window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, success, fail);

function success(fileSystem) {
    window.rootFS = fileSystem.root;
    window.rootFS.getFile("TestFile.txt", { create:true }, onSuccess, onFail); 
    function onSuccess() {
        //write something on the file 
    }
    function onFail(error) {
        //show error
    }

function fail(error) {
    alert("Failed to retrieve file: " + error.code);
}

1 个答案:

答案 0 :(得分:1)

我找到了一个解决方案:使用window.resolveLocalFileSystemURL而不是window.requestFileSystem。但是我只能使用cordova.file.externalDataDirectory访问内部SD卡。只是cordova.file.dataDirectory给了我一个不存在的路径文件:/// data / data / ... 以下代码证明适用于Android。

window.resolveLocalFileSystemURL(cordova.file.externalDataDirectory, function(dir) {
    console.log("got main dir",dir);
    dir.getFile("log.txt", {create:true}, function(file) {
        console.log("got the file", file);
        logOb = file;
        writeLog("App started");
    });
});