在 Phonegap 中保存文件

Saving files in Phonegap

在过去的几个小时里,我一直在 运行 浏览文档和所有内容,但没有成功... 我想从一些服务器下载一个文件并保存它到我的phone(应用程序存储文件的目录仅对我的应用程序可见,并在应用程序卸载时被删除)。我想 store 一个文件并 write 到它(我已经完成了下载部分)。使用以下代码,当我 运行 它时,它可以工作并显示 "file" 中的文本但是当我使用某些文件浏览器应用程序搜索文件时,我 "created" 几乎找不到。

干杯!

编辑说明: 好吧,我现在什至尝试使用 USB 连接在我的 phone 计算机上创建一个文件,所以我知道该文件存在的事实...... 我在电脑上创建的文件路径是:

This PC\Galaxy S7 edge\Phone\Android\data\com.phonegap.musicapp2\text.txt

我从 JSON.stringify(dirEntry) 得到的响应代码如下

{"isFile":false,"isDirectory":true,"name":"com.phonegap.musicapp2","fillPath":"/data/user/0/com.phonegap.musicapp2/", "filesystem":"","nativeURL":"file:///data/user/0/com.phonegap.musiapp2/"}

所以当我运行下面的代码时,它给了我

Error from getFile: {"code":1}

我查看了文档,它说代码 1 的意思是:NOT_FOUND_ERR (http://prntscr.com/n071kx)

"Code from bellow"

function readFile(fileEntry) {

    fileEntry.file(function (file) {
        var reader = new FileReader();

        reader.onloadend = function() {
            DebugConsole.log("Successful file read: " + this.result);
            //  displayFileData(fileEntry.fullPath + ": " + this.result);
        };

        reader.readAsText(file);

    }, onErrorReadFile);
}

window.resolveLocalFileSystemURL(cordova.file.applicationStorageDirectory, function(dirEntry) {

    DebugConsole.log(JSON.stringify(dirEntry));

    dirEntry.getFile('text.txt', {create: false, exclusive: false}, function(fileEntry) {

        //writeFile(fileEntry, null, isAppend);
        readFile(fileEntry);

    }, function(e) {

        DebugConsole.log('Error from getFile: ' + JSON.stringify(e));
    });
});

旁注: 应用程序从不请求访问我的内部存储空间的权限。 我进入 Apps/myapp/permissions,它显示该应用没有访问存储的权限。我打开它但仍然没有运气。 我想我需要以某种方式从应用程序请求存储访问权限,但我似乎找不到方法?

我设法找到了以下解决方案

window.resolveLocalFileSystemURL(cordova.file.externalRootDirectory + "Android/data/app.name/files/", success, fail);