【发布时间】:2019-03-19 16:03:50
【问题描述】:
在过去的几个小时里,我一直在浏览文档和所有内容,但没有成功... 我想从某个服务器下载一个文件并将其保存到我的手机上(应用程序存储文件的目录,这些文件只对我的应用程序可见,并且在应用程序已卸载)。我想存储一个文件并写入(我已经完成了下载部分)。使用以下代码,当我运行它时,它可以工作并显示“文件”中的文本,但是当我使用一些文件资源管理器应用程序搜索文件时,我“创建”的文件远未找到。
干杯!
编辑注意事项: 好的,所以我现在什至尝试使用 USB 连接从计算机上在我的手机上创建一个文件,所以我知道该文件存在的事实...... 我从电脑创建的文件的路径是:
这台电脑\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/permissions 并显示该应用程序无权访问存储。我打开它但仍然没有运气。 我想我需要以某种方式从应用请求存储访问权限,但我似乎找不到方法?
【问题讨论】:
-
您应该尝试运行媒体扫描仪
-
@KeySee 需要解释一下吗? (编辑:Nvm,扫描它,仍然没有文件)
-
尝试将其保存到microsd或模拟空间的根目录,即使有Music文件夹也可以检查
-
我已经用更多信息编辑了这个问题
-
尝试使用cordova-plugin-file-transfer,它允许您在一次调用中下载和存储;)cordova.apache.org/docs/en/latest/reference/…
标签: javascript android cordova phonegap