使用纯Javascript在Android上使用mosync/phonegap从SD卡读取文件
我知道这个问题以前被问过很多次,但我无论如何也弄不明白。 我能够将文本文件写入SD卡(android 4)上的目录,但无法再次读取,使用以下代码:使用纯Javascript在Android上使用mosync/phonegap从SD卡读取文件,javascript,android,filereader,mosync,Javascript,Android,Filereader,Mosync,我知道这个问题以前被问过很多次,但我无论如何也弄不明白。 我能够将文本文件写入SD卡(android 4)上的目录,但无法再次读取,使用以下代码: function get_file () { window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, getFilesystem, fail); } function getFilesystem(fs) { alert("getFilesystem -> backup.txt")
function get_file () {
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, getFilesystem, fail);
}
function getFilesystem(fs) {
alert("getFilesystem -> backup.txt"); // OK !
// alert("filesystem.name: "+fileSystem.name); // = persistent
// alert("filesystem.root.name: "+fileSystem.root.name); // = long number
//
fs.root.getFile("../../../../../../sdcard/test/backup.txt", {create: false, exclusive: false},
function(fileEntry) {
alert(fileEntry.fullPath); // shows that my path is appended to "data/.."
fileEntry.file(function(file) {
var reader = new FileReader();
reader.onloadend = function(evt) {
alert(+evt.target.result); // NOT SHOWING !
};
reader.readAsText(file);
}, fail);
}, fail);
}
我使用writer函数将文件写入目录sdcard/test,使用的顺序是../-这是一个丑陋的代码,但仍在工作
但是fs.root.getFile
的工作方式不同-它返回的完整路径信息显示给定的路径被附加到“/data/data/com.appname/files”中,但不会替换它
onloadend函数显然不起作用,因为我从未收到警报消息,也没有收到错误消息。
将路径更改为“file:///sdcard/test“SD卡/测试”也不起作用
非常感谢您的帮助-提前谢谢!
克里斯请参考
从中您将获得从SD卡获取文件的工作示例。
如果您在下载文件时遇到问题,请参阅
我认为在替换“/sdcard/backup.txt”时,尽量只使用“backup.txt”
它似乎工作得很好
PhoneGap处理路径的细节,也处理目录 所以我终于可以弄明白了: 要访问该目录(在Android 4.0上,三星Note 8),我必须通过选择以下内容,从/data/data/com.app name/files/apps/(随机编号)/返回SD卡的所有目录:
fs.root.getFile("../../../../../../sdcard/test/backup.txt", ...
在mosync中,重新加载客户端
使用mosync apk“编译”应用程序只需要4次“./”,因为那里的文件层次结构低于重新加载客户端中的文件层次结构。在任何情况下都必须签入文件资源管理器(需要根访问权限)。
与此不同的是,当您使用phonegap在云中编译时,实际上根路径是sdcard!就我所知,您无法转到数据目录
此路径适用于mosync中的写入和读取-我的错误是文本文件中有换行符“\n”。在这种情况下,我可以编写它,但读卡器停止时没有错误消息
希望这也能帮助其他人
Chris嗯,这就是我从大约两周后一直在尝试的,你可以看到我的代码实际上是phonegap docu。如果我只使用“backup.txt”作为路径,程序将在应用程序“file”目录中查找此文件。我的问题仍然是,如何访问SD卡上我自己选择的任何目录中的文件?Phonegap不处理它,如果我不能将它写入代码,它怎么知道我要使用哪个目录?请给出具体的例子来帮助。你好,克里斯,你能发布代码吗?我试图在我的ApacheCordova项目中复制/粘贴您的第一个代码,但它不起作用。我搜索了两周文件cordova函数的工作原理:/此处有两篇帖子。