2013-10-27 84 views

回答

8

我打算假設您熟悉Google Apps腳本,以瞭解如何在驅動器中創建腳本,管理編輯器等......如果您不是,請從此處開始https://developers.google.com/apps-script/overview

這裏一個小腳本,將列出所有的文件,並將它們設置到垃圾桶,你仍然需要去垃圾和永久刪除。

時要小心使用該腳本:ALL將文件移動到回收站

您需要取消對file.setTrashed(真)當您運行此

function processAllFiles() { 
    // we look for the continuation token from the UserProperties 
    // this is useful as the script may take more that 5 minutes 
    // (exceed execution time) 
    var continuationToken = UserProperties.getProperty('DELETE_ALL_FILES_CONTINUATION_TOKEN'); 

    if (continuationToken == null) { 
    // firt time execution, get all files from drive 
    var files = DriveApp.getFiles(); 
    // get the token and store it in a user property 
    var continuationToken = files.getContinuationToken(); 
    UserProperties.setProperty('DELETE_ALL_FILES_CONTINUATION_TOKEN', continuationToken); 
    } else { 
    // we continue to execute (and move everything to trash) 
    var files = DriveApp.continueFileIterator(continuationToken); 
    } 

    while (files.hasNext()) { 
    var file = files.next(); 
//  file.setTrashed(true); 
    Logger.log(file.getName()); 
    } 

    // finish processing delete the token 
    UserProperties.deleteProperty('DELETE_ALL_FILES_CONTINUATION_TOKEN'); 
} 

你可能會潛在地留下了很許多文件夾(如果它們是由於某種原因以編程方式創建的;)),所以你可以運行這個小腳本將它們移動到垃圾箱。不要忘記取消註釋下面的內容。

function processAllFolder() { 
// Log the name of every folder in the user's Drive. 
    var folders = DriveApp.getFolders(); 
    while (folders.hasNext()) { 
    var folder = folders.next(); 
    Logger.log(folder.getName()); 
    // folder.setTrashed(true); 
    } 
}; 

讓我知道如何爲你工作。

+0

Th爲文件夾更新(和用於評論以及:-)(+ 1upvote) –

+0

anks當含有setTrashed線()是未註釋這保持生成服務器錯誤。我懷疑這與刪除腳本文件本身有關,但@Sergeinsas答案也會在該行上生成服務器錯誤。 – jrhorn424

+0

開箱即用(爲我節省了一整天的工作 - 我有50GB的刪除空間)。 – Parzival

3

我非常patt0的(最好的)答案interrested,並試圖通過添加一些功能對我個人的舒適度,以提高它(只是一點點:-) ......

這是我來,只是信息(添加數據記錄保存在單個文件不會被刪除,這樣可以保持發生了什麼事一絲 - 或將要發生什麼,如果你與評論setTrashed()運行它 - 和發送郵件到你方便訪問的日誌數據doc url)

function processAllFiles() { 
    var continuationToken = UserProperties.getProperty('DELETE_ALL_FILES_CONTINUATION_TOKEN'); 
    var numberOfFiles = Number(UserProperties.getProperty('Number_of_files_processed')); 
    var thisScriptFileId = DocsList.find("continuationToken = UserProperties.getProperty('DELETE_ALL_FILES_CONTINUATION_TOKEN')")[0].getId(); 
    Logger.log(thisScriptFileId); 
    if(UserProperties.getProperty('logFileId') == null){ 
    var logFileId = DocumentApp.create('Delete All Files Log data').getId(); 
    var doc = DocumentApp.openById(logFileId); 
    doc.getBody().appendParagraph('List of all the files you deleted\n\n'); 
    UserProperties.setProperty('logFileId', logFileId); 
    } 
    if (continuationToken == null) { 
    var files = DriveApp.getFiles(); 
    var continuationToken = files.getContinuationToken(); 
    UserProperties.setProperty('DELETE_ALL_FILES_CONTINUATION_TOKEN', continuationToken); 
    UserProperties.setProperty('Number_of_files_processed', '0'); 
    } else { 
    var files = DriveApp.continueFileIterator(continuationToken); 
    } 

    while (files.hasNext()) { 
    var file = files.next(); 
    if(file.getId()!=logFileId&&file.getId()!=thisScriptFileId){ 
//  file.setTrashed(true); 
     numberOfFiles++ 
     Logger.log('File '+Utilities.formatString("%05d", numberOfFiles)+' : '+file.getName()); 
    } 
    } 
    var paragraphStyle = {}; 
    paragraphStyle[DocumentApp.Attribute.FONT_SIZE] = 8 ; 

    var doc = DocumentApp.openById(UserProperties.getProperty('logFileId')); 
    doc.getBody().appendParagraph(Logger.getLog()).setAttributes(paragraphStyle); 
    MailApp.sendEmail(Session.getEffectiveUser().getEmail(),'DeleteFiles result Log','Here is the log data to your script :\n\n' 
        +doc.getUrl()+'\n\nExecuted by this script : '+DocsList.getFileById(thisScriptFileId).getUrl()); 
    // finish processing delete the token 
    UserProperties.deleteProperty('DELETE_ALL_FILES_CONTINUATION_TOKEN'); 
    UserProperties.deleteProperty('Number_of_files_processed'); 
} 
+1

好東西與記錄嗶嘰,我加了一個函數來處理我的基本版本中的文件夾... – patt0

+1

精彩的工作人員,在這裏運行了2個腳本並刪除了所有文件。 而且還生成了刪除文件的日誌!非常感謝你。 –

+0

很高興幫助,這是一個有趣的:-) –

相關問題