Google Apps脚本中的文件夹结构问题
我有一个在文件夹中创建文件的脚本(该文件夹是从单元格值命名的,该文件具有静态名称)。我希望的是一个将创建父值的脚本(在这种情况下,从单元格的2021年开始),然后在该脚本下一个子文件夹(在这种情况下,在这种情况下是设置的Emplyee类型,而不是来自单元格例如。
我真正挣扎的是要获得我想要的文件夹结构 - 最终看起来像这样:
“年”(来自单元格值) - > “员工类型”(静态值) - > “员工名称”(来自单元格值) - > “ index.html”(静态值)
具有以下代码,我的结构的最后两个部分工作,但无法获得“年”或“员工类型”文件夹。
我当前的代码在下面,但我似乎无法弄清楚如何将上面的2个文件夹添加到此脚本中。
function driverPages() {
var ss = SpreadsheetApp.getActive();
var sh = ss.getActiveSheet();
var rg = sh.getRange(2, 17, sh.getLastRow(), 2);
var vs = rg.getValues().filter(r => r.every(Boolean));
vs.forEach(r => DriveApp.getFolderById(deletedriverPages('1Xsl2r_RPgqQ1i8K3aF23hov82JmNFySu',r[0], '2020')).createFile('index.html', r[1]));
}
function deletedriverPages(parentId, name) {
var parent = DriveApp.getFolderById(parentId);
var id;
var folders = parent.getFoldersByName(name);
if (folders.hasNext()) {
var folder = folders.next();
id = folder.getId();
var files = folder.getFiles();
while (files.hasNext()) {
var file = files.next();
if (file.getName() == 'index.html') { file.setTrashed(true) }
}
}
else {
var folder = parent.createFolder(name);
id = folder.getId();
}
return id;
}
I have a script which creates a file in a folder (the folder is named from a cell value, the file has a static name). What I'm hoping for is a script that will create a parent value (in this case a year from a cell eg. 2021) and then a sub folder under that (in this case an emplyee type which is set and NOT from a cell eg. Driver).
What I am really struggling with is getting the folder structure I want - which would ultimately look like this:
"Year" (from cell value) --> "Employee Type" (static value)--> "Employee Name" (from cell values) --> "index.html" (static value)
With the below code, I have the last two parts of the structure working but cannot get "Year" or "Employee Type" folders.
My current code is below but I cannot seem to figure out how to add the 2 folders above to this script.
function driverPages() {
var ss = SpreadsheetApp.getActive();
var sh = ss.getActiveSheet();
var rg = sh.getRange(2, 17, sh.getLastRow(), 2);
var vs = rg.getValues().filter(r => r.every(Boolean));
vs.forEach(r => DriveApp.getFolderById(deletedriverPages('1Xsl2r_RPgqQ1i8K3aF23hov82JmNFySu',r[0], '2020')).createFile('index.html', r[1]));
}
function deletedriverPages(parentId, name) {
var parent = DriveApp.getFolderById(parentId);
var id;
var folders = parent.getFoldersByName(name);
if (folders.hasNext()) {
var folder = folders.next();
id = folder.getId();
var files = folder.getFiles();
while (files.hasNext()) {
var file = files.next();
if (file.getName() == 'index.html') { file.setTrashed(true) }
}
}
else {
var folder = parent.createFolder(name);
id = folder.getId();
}
return id;
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以尝试执行递归函数来遍历文件夹层次结构,并在此过程中创建任何缺少的文件夹。这是一个示例(未测试):
You could try doing a recursive function to traverse the folder hierarchy and create any missing folders along the way. Here is an example (not tested):