2014-04-21 83 views
0

我一直在嘗試創建一個谷歌應用程序腳本,以列出驅動器中的所有文件以及大小並將它們通過電子郵件發送給我。部分這是實踐,可能有用。這是到目前爲止我的代碼:列出所有帶有Google Drive大小的文件

function listAllFiles() { 
    var rootFolder = DocsList.getRootFolder(); 
    var contents = rootFolder.getFiles(); 
    var file = DocsList.getAllFiles(); 
    for (i = 0; i < contents.length; i++) { 

Logger.log(file[i].getName() + ":::" + file[i].getSize()); 
} 
var recipient = Session.getActiveUser().getEmail(); 
var subject = 'A list of files in your Google Drive'; 
var body = Logger.getLog(); 
MailApp.sendEmail(recipient, subject, body); 
} 

只發送列出關於5個文件但是,除非我改變「contents.length」像100(手動數量也由於某種原因,它會拋出一個錯誤的.getName,如果我使它像1000一樣高)。無論如何,我知道我不應該使用硬數字。請忍受我的無知,我一直在學習谷歌腳本約1個星期和JavaScript約2個月我自己。

+0

你應該FORMUL在某個地方吃了一個確定的問題。這樣可以更容易地獲得答案,因爲其他用戶不必多次閱讀文本就可以得到完全不清楚的內容。 – Jens

+0

對不起,我會保持簡短,並從現在開始。 – Marlone

回答

0
  1. DriveApp建議,而不是已超出DocsList
  2. DocsList.getAllFiles()由MAX_RESULT_SIZE有限...使用getAllFilesForPaging(數量,令牌)如果你有很多文件
  3. 你只得到文件的數量從您的所有文件的集合根
  4. 嘗試

    function listAllFiles() { 
    // DriveApp is recommended rather than DocsList. 
        var dFiles = DriveApp.getFiles(); 
        while (dFiles.hasNext()) { 
        var thisFile = dFiles.next() 
        Logger.log(thisFile.getName() + ":::" + thisFile.getSize()); 
    
        } 
    // you might want to make this restartable if you have lots of files ... time out 
    var recipient = Session.getActiveUser().getEmail(); 
    var subject = 'A list of files in your Google Drive'; 
    var body = Logger.getLog(); 
    MailApp.sendEmail(recipient, subject, body); 
    } 
    
+0

謝謝,這很好。 – Marlone

相關問題