2017-06-22 27 views
0

我是一個begginer的JavaScript,我試圖導出我的谷歌驅動器文件夾的名稱和URL到工作表。試圖張貼谷歌驅動器索引到工作表

我從網上覆制了這段代碼。

function listFilesInFolder(Aman) { 

    var folder = DriveApp.getFoldersByName(Aman).next(); 
    var contents = folder.getFiles(); 

    var file, data, sheet = SpreadsheetApp.getActiveSheet(); 
    sheet.clear(); 

    sheet.appendRow(["Name", "Date", "Size", "URL", "Download", "Description", "Type"]); 

    for (var i = 0; i < contents.length; i++) { 

    file = contents[i]; 

    if (file.getFileType() == "SPREADSHEET") { 
     continue; 
    } 

    data = [ 
     file.getName(), 
     file.getDateCreated(), 
     file.getSize(), 
     file.getUrl(), 
     "https://docs.google.com/uc?export=download&confirm=no_antivirus&id=" + file.getId(), 
     file.getDescription(), 
     file.getFileType().toString() 
    ]; 

    sheet.appendRow(data); 

    } 

}; 

hitesh是我的文件夾的名稱。

不幸的是,

我得到一個錯誤

無法檢索下一個對象:迭代器已到達終點。 (第3行,文件「代碼」)

也請指導我,如果我可以對此代碼進行任何更改也爬行通過文件夾中「hitesh」文件夾和後索引相同。

永遠感激

問候

manak

回答

0

請注意,調用next()將獲得文件或文件夾的集合中的一個項目。因此,您可能首先檢查是否打電話next()將返回一個項目。試試這個條件包圍你的代碼,

while (files.hasNext()) { 

} 

另外,如果你的文件夾的名稱是hitesh,那麼你應該在使用,

var folder = DriveApp.getFoldersByName(Aman).next(); 

對於額外的見解,看到這個GitHub post,這SO post