1
function deleteFiles(fileId,supportsTeamDrives) { 



var date = new Date(); 
date.setDate(date.getDate() - 180); 
var n = date.toISOString().split('.')[0] ; 
    var test = false; 

    gapi.client.drive.files.list({ 
    pageSize: x, 
    q: "starred = "+test+" and viewedByMeTime < '"+n+"'", 
    orderBy: 'quotaBytesUsed desc', 

     fields: "nextPageToken, files(id, name, viewedByMeTime, mimeType, quotaBytesUsed)", 

    } 

    ) 

    .then(function(response) { 
    var files = response.result.files; 

     if (files && files.length > 0) { 
     for (var i = 0; i < files.length; i++) { 
      var file = files[i]; 
      var file_id = file.id, 
     )'); 

      }} 

    var request = gapi.client.drive.files.delete({ 
    supportsTeamDrives: 'false', 
fileId: file_id , 
    }); } 

request.execute(function(resp) { }); 




} 

この関数は、fileIDが出力されるたびに削除されるので、fileIDをリストします。これを行うには、リストファイルとファイル機能を一緒に組み合わせるにはどうすればいいですか?ドライブAPI for Javascriptで一度に複数のファイルを削除するにはどうすればよいですか?

現在、私は2つの関数に分けていますが、変数fileIDは最後に出力されたfileIDのみを保存するため、delete関数は1つのファイル、最後にリストされたファイルのみを削除します。私はそれをリストにして、すべてのファイルをvarableに出力し、そのリストが削除されるようにしたい。これを達成するために私の目標に何を変えたり加えることができますか?

+0

あなたが何かをする必要がありますか?今すぐ私の答えは削除の約束を実行するだけですが、あなたは完全なエラーを捕まえるかどうかを知ることはできません。 – inspired

+0

@敬具、感謝の答え!だから私が望むのは、すべてが削除されたときに最後に更新することですが、各ファイルが削除されたときに更新されるリスト(私が所有するリストファイル機能によって提供される)も必要です。しかし、ここに私のポストから:http://stackoverflow.com/questions/42712122/how-to-clear-list-files-before-listing-another-one、私はファイルの別のリストが削除される前にボードをクリアすることに問題があります削除されました。どんな助けもありがとう! – Pig

答えて

1

あなたのループ内でファイルを削除するようにコードを変更することができます:削除のすべてが終了した後

function deleteFiles(fileId, supportsTeamDrives) { 

    var date = new Date(); 
    date.setDate(date.getDate() - 180); 
    var n = date.toISOString().split('.')[0]; 
    var test = false; 

    gapi.client.drive.files.list({ 
       pageSize: x, 
       q: "starred = " + test + " and viewedByMeTime < '" + n + "'", 
       orderBy: 'quotaBytesUsed desc', 

       fields: "nextPageToken, files(id, name, viewedByMeTime, mimeType, quotaBytesUsed)", 

      } 

     ) 

     .then(function(response) { 
      var files = response.result.files; 

      if (files && files.length > 0) { 
       for (var i = 0; i < files.length; i++) { 
        var file = files[i]; 
        var file_id = file.id; 
        deleteFile(file_id); 
       } 
      } 

     }); 
} 

// method used to delete the files 
function deleteFile(file_id) { 
    var request = gapi.client.drive.files.delete({ 
     supportsTeamDrives: 'false', 
     fileId: file_id, 
    }); 
    request.execute(function(resp) {}); 
} 
+0

私は何を実装することができますので、完了時に完了したことをユーザーに警告しますか? – Pig

関連する問題