正在检查phonegap中的文件目录

Checking a directory for a file in phonegap

本文关键字:文件目录 phonegap 检查      更新时间:2023-12-01

嘿,这篇文章中的两个问题,对于你这些经验丰富的js家伙来说可能很简单:-)

第一;当我传递readEntries时,为什么它内部没有定义"filename"?

第二;当目录为空时,为什么总是这样?

这是我的代码:我用一个类似"women.png"的字符串调用getPicturepath

function getPicturePath(filename){
    alert(filename); //is correct
    var reader = DATADIR.createReader();
    reader.readEntries(function(entries, filename){
    alert(filename);//is undefined ???
        var doWeHaveIt = function(entries,filename){
            checkForFile(entries,filename)
            };
        if(doWeHaveIt){
            alert('allready have: '+DATADIR.fullPath+filename);
        } else {
            alert('need to download file: '+filename);
        }
    },onError);
}
function checkForFile(entries,filename){
    console.log("The dir has "+entries.length+" entries.");
    if(entries.indexOf(filename)!=-1){
        alert(filename+' allready exists');
        return true;
    } else {
        alert(filename+" doesn't exists");
        return false;
    }
}
reader.readEntries(function(entries, filename){

这是定义参数entriesfilename的函数。

例如,此函数可能会执行以下操作:

readEntries: function( callback ) {
    // do something, then
    callback( some, datas );
}

如果你只想在这个函数中使用filename,就用它吧

function getPicturePath(filename){
    alert(filename); //is correct
    var reader = DATADIR.createReader();
    reader.readEntries(function(entries){
        alert(filename);// is still correct

第二部分(总是正确的)是因为这个:

function hi() {}
if ( hi ) {
    // You're always getting there.
}

我写的正是你所做的。我让你猜一下如何纠正:-)