我尝试使用cordova 3.4.0 GetFile:
FileManager.prototype.ReadAsTextFromFile = function (fileName, readDataCallBack) {
var that = this;
try {
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function (fileSystem) {
fileSystem.root.getFile(fileName, {create: false},
function (fileEntry) {
fileEntry.file(
function (file){
var reader = new FileReader();
reader.onloadend = readDataCallBack;
reader.readAsText(file);
}
, function(err){alert('ReadFile' + " fail: " + err.code);});
}
, function(err){alert('GetFile' + " fail: " + err.code);});
}, function(err){alert('FileSystem' + " fail: " + err.code);});
} catch (e) {
logError(e);
}
}
但在调用getfile上获取err.code 1000。
文件名是:
var fileName = "/scard/" + reliefsSubfolderName + reliefname
+ String.fromCharCode(47) + reliefsManifestFileName;
/scard/my_dir_on_card/my_file_name.drd(drd是我的扩展名,但是是一个文本文件)
我可以知道实现目标的正确方法是什么?
答案 0 :(得分:6)
我猜您需要省略fileName中的前导“/” 错误代码 1000 的最可能原因是不存在的路径文件,同时通过getFile创建引用,并将create option设置为false
fileSystem.root.getFile(fileName, {create: false},...
您可以尝试在调用getFile之前检查完整文件路径并查看它是否有效。除了初始协议之外,您的路径不应包含多个连续的“/”。例如 cdvfile:// localhost / persistent / scard .....
console.log(fileSystem.root.toURL() + fileName);