我知道这个问题之前曾被多次询问过,但我无论如何都无法理解。 我能够将文本文件写入sdcard(android 4)上的目录,但无法使用此代码再次读回:
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);
}
我使用编写器函数将文件编写到目录sdcard / test中,使用这个序列../ - 这是一个丑陋的代码,但正在工作!
但是fs.root.getFile
不能以相同的方式工作 - 它返回的fullPath信息显示我给出的路径是APPENDED到“/data/data/com.appname/files”但不替换它!
onloadend函数显然不起作用,因为我从未收到过警告消息,也没有收到错误消息。 更改“file:/// sdcard / test”或“sdcard / test”的路径也没有效果。
非常感谢任何帮助 - 提前谢谢! 克里斯
答案 0 :(得分:0)
从这里你将得到从sdcard获取文件的工作示例。 如果您在下载文件时遇到问题,请参阅LINK
我想在“/sdcard/backup.txt”的位置尝试只使用“backup.txt”。
似乎工作正常。
PhoneGap负责路径的详细信息,也适用于目录。
答案 1 :(得分:0)
所以我终于明白了: 要访问该目录(在Android 4.0,Samsung Note 8上),我必须从/data/data/com.app-name/files/apps/(random no。)/通过选择返回到SD卡的所有目录:
fs.root.getFile("../../../../../../sdcard/test/backup.txt", ...
在mosync Reload客户端。
使用mosync apk编译应用程序只需要4次“../”,因为文件层次结构低于重新加载客户端。无论如何都要检查文件资源管理器(需要root访问权限)。 与此不同的是,当您使用phonegap在云中编译时 - 那么根路径确实是SD卡!然后,就我所知,你无法进入数据目录。
此路径适用于mosync中的写入和读取 - 我的错误是我在文本文件中有换行符“\ n”。在这种情况下,我可以写它,但读者停止没有错误消息。
希望这也有助于其他人!
克里斯