2017-09-12 8 views
0

名前でファイルを取得し、日付順に作成する簡単なGoogle Appsスクリプトを作成しようとしています。同じ名前のファイルが5つ以上ある場合は、最新の5つのファイル以外のファイルをすべて削除します。datecreatedのファイルをソートし、google appsスクリプトで古いファイルを削除します。

function tryme(){ 
    var files = DriveApp.getFilesByName('thisFile'); 
    var created = files.getDateCreated(); 
    for(i in created) { 
    if(created[i] > 4){ 
     file.setTrashed(true);} 
    } 
    } 

答えて

0

ファイルイテレータでファイルメソッドを使用しようとしています(getFilesByName()メソッドから返されます)。ここで

はあなたの問題のためのソリューションです:

function tryme(){ 
    // Get the file Iterator 
    var files = DriveApp.getFilesByName('New Text File'); 
    var fileArray = []; 
    // Put file on array 
    while(files.hasNext()){ 
    var file = files.next(); 
    fileArray.push([file, file.getDateCreated()]); 
    } 
    //While you have more than 5 files 
    while(fileArray.length>5){ 
    var older = ["",new Date()]; 
    var olderIndex; 
    // Get the older file 
    for(var i in fileArray){ 
     if(fileArray[i][1].getTime() < new Date(older[1]).getTime()){ 
     olderIndex = i; 
     older = fileArray[i]; 
     } 
    } 
    // Delete the older file 
    fileArray.splice(olderIndex,1); 
    older[0].setTrashed(true); 
    } 
} 

編集:私はDriveApp.removeFileを(使用してミスをした)の代わりにFile.setTrashedの(真の)

+0

はありませんゴミ箱に何かを移動するようだ。 – testing123

+0

正しいですが、File.setTrashed(true)の代わりにDriveApp.removeFile(File)を使用して間違えました。私は答えを編集しました。 –

関連する問題