我一直在尝试编写一行代码,自动生成一个特定文件夹中的子文件夹列表。
使用下面的代码我设法得到一个文件列表,但我无法调整代码只能获取子文件夹。
有人可以帮帮我吗?
干杯安迪
我是如何得到这些文件的
function listFilesInFolder(id) {
var folder = DriveApp.getFolderById('[ID]');
var contents = folder.getFiles();
var file;
var name;
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('Mockups');
var date;
var size;
var link;
sheet.clear();
sheet.appendRow(["Annons", "Länk", "Uppladdad"]);
while(contents.hasNext()) {
file = contents.next();
name = file.getName();
date = file.getDateCreated()
size = file.getSize()
link = file.getUrl();
data = [name, link, date, ]
sheet.appendRow(data);
}
};
实际上,有特定于文件夹的命令。使用以下内容修改您的函数:
var subFolders = folder.getFolders();
while (subFolders.hasNext()
{
var childFolder = childFolders.next();
var folderID = childFolder.getId();
Logger.log(folderID);
}
得到它使用下面的代码。
感谢J. G.的帮助,您的投入使其成功!
function generateFolderIndex(id) {
var folder = DriveApp.getFolderById('[ID]');
var subFolders = folder.getFolders();
var childFolders = subFolders
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('Projekt');
sheet.clear();
sheet.appendRow(["Projekt", "Länk", "Skapad"]);
while (subFolders.hasNext())
{
var childFolder = childFolders.next();
var folderID = childFolder.getId();
var name = childFolder.getName()
var link = childFolder.getUrl()
var date = childFolder.getDateCreated()
data = [name, link, date, ]
sheet.appendRow(data);
}
};