我尝试用Cordova 3.4.0获取文件:

    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是我的扩展名,但是文本文件)
我能知道实现目标的正确方法是什么吗?

最佳答案

我想您需要在文件名中省略前导“/”。
错误代码1000的最可能原因是在通过getfile获取引用时路径文件不存在,create选项为false

fileSystem.root.getFile(fileName, {create: false},...

在调用getfile之前,您可以尝试检查完整的文件路径,看看它是否有效。除初始协议外,您的路径不应包含多个连续的“/”。例如cdvfile://localhost/persistent/scard…..
console.log(fileSystem.root.toURL() + fileName);

08-18 10:04