2015-08-28 45 views
0

使用cordova和apache/cordova-plugin-file插件,我怎樣才能得到一個給定目錄中超過30天的文件並刪除它們?Cordova檢索並刪除超過30天的文件?

+1

看看這裏:http://docs.phonegap.com/en/edge/cordova_file_file.md.html你要找的是lastModifiedDate。 – Gusman

回答

2

嘗試使用此代碼:

function daysDiff(now, fileDate) { 
    // thanks to http://stackoverflow.com/a/3224854/3340702 
    var timeDiff = Math.abs(now.getTime() - fileDate.getTime()); 
    return Math.ceil(timeDiff/(1000 * 3600 * 24)); 
} 

// Process file entries 
function deleteOlderFiles(entries) { 
    var i; 
    var currentDate = new Date(); 
    for (i=0; i<entries.length; i++) { 
     if(entries[i].isFile) { 
      entries[i].file(function(file) { 
       if(daysDiff(currentDate, file.lastModifiedDate) > 30) { 
        entries[i].remove(function(){ 
         console.log("File removed"); 
        }, function(){ 
         console.log("Error while removing file"); 
        }); 
       } 
      }), error); 
     } 
    } 
} 

function fail(error) { 
    alert("Failed during operations: " + error.code); 
} 

// Get a directory reader 
var directoryEntry = new DirectoryEntry(name, path); 
var directoryReader = directoryEntry.createReader(); 

// Get a list of all the entries in the directory 
directoryReader.readEntries(deleteOlderFiles, fail); 

更多信息請參見DirectoryEntryDirectoryReaderFileEntry文檔。

+0

在仔細觀察這個之後,我意識到這並不完全正確。 fileEntry上的文件方法是異步方法,但這非常接近。 http://docs.phonegap.com/en/edge/cordova_file_file.md.html#FileEntry – d0001

+1

我將回調添加到remove方法,以便您可以跟蹤成功/錯誤狀態。 – lifeisfoo

+0

條目[i] .file()是異步的。 – d0001