在Phonegap中保存文件

问题描述 投票:1回答:1

过去几个小时我一直在浏览文档和所有内容但没有成功......我想从某个服务器下载一个文件并将其保存在我的手机上(应用程序存储只能看到文件的目录)到我的应用程序,并在卸载应用程序时删除)。我想存储一个文件并写入它(我已经完成了下载部分)。使用以下代码,当我运行它时,它可以工作并显示“文件”中的文本,但是当我使用某些文件资源管理器应用程序搜索文件时,我“创建”的文件无处可寻。

干杯!

编辑说明:好的,所以我现在甚至尝试使用USB连接从计算机上创建我的手机上的文件,所以我知道该文件存在的事实...我从PC创建它的文件的路径是:

这个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/"}

因此,当我从下面运行代码时,它给了我

来自getFile的错误:{“code”:1}

我查看了文档,它说代码1意味着:NOT_FOUND_ERR(http://prntscr.com/n071kx

“下面的代码”

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 /权限,它显示该应用程序没有访问存储的权限。我打开它但仍然没有运气。我想我需要以某种方式从应用程序请求存储访问,但我似乎无法找到方法如何?

javascript android cordova phonegap
1个回答
0
投票

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

window.resolveLocalFileSystemURL(cordova.file.externalRootDirectory + "Android/data/app.name/files/", success, fail);
© www.soinside.com 2019 - 2024. All rights reserved.