0

Cordova 3.1.0 のファイルのディレクトリをループしています。エントリごとに、ファイル名と変更日が必要です。

FileEntry オブジェクトで getMetadata メソッドを使用しています。このメソッドは、成功のコールバックで Metadata オブジェクトを返しますが、その Metadata オブジェクトを FileEntry オブジェクトに結び付ける方法がわかりません。

これは、ファイル名の配列と変更日の配列がありますが、2 つの間にリンクがないことを意味します。

ここに私のコードスニペットがあります:

// DirectoryEntry.getDirectory callback
function gotPagesDir(d)
{
    var reader = d.createReader();
    reader.readEntries(function(d){
        gotFiles(d);
        appReady();
    }, onError);
}


function gotFiles(entries)
{
    for(var i in entries)
    {
        // __CACHED_FILES is a global scoped object
        __CACHED_FILES[entries[i].name] = {name: entries[i].name};
        entries[i].getMetadata(gotMetadata, metadataError);
    }
}

function gotMetadata(metadata)
{
    var date_modified = metadata.modificationTime;
    // How do I workout which FileEntry object this metadata object belongs to?
}
4

2 に答える 2

1

X(15) 日以上経過し、同じ課題に直面したすべてのファイルまたはディレクトリを削除したいのですが、この方法で修正しました。ご覧ください。それが誰かを助けることを願っています

metaDataCallback : function metaDataCallback (dirEntry) {
              return function(metadata) {
                var currentDate = new Date();
                if(assetservice.daysDiff(currentDate, metadata.modificationTime) > Constants.DaysForCachingAssets) {
                  dirEntry.removeRecursively(function(){
                    console.log("File removed");
                  }, function(){
                    console.log("Error while removing file");
                  });
                }
              }
        }




 for (i=0; i<entries.length; i++) {
            if(entries[i].isFile) {
              entries[i].file(function(file) {
                if(daysDiff(currentDate, file.lastModifiedDate) > 15) {
                  entries[i].remove(function(){
                    console.log("File removed");
                  }, function(){
                    console.log("Error while removing file");
                  });
                }
              }, function (error){console.log(error);});
            } else
            {
              //directory
               entries[i].getMetadata(metaDataCallback(entries[i]), function (error){console.log(error);},entries[i]);
            }
}
于 2016-08-18T10:32:10.547 に答える