我目前正在开发一个简短的小脚本,最终结果是它返回了我的Google云端硬盘的文件和文件夹结构或其中的某个文件夹。我有一个基本的框架,它正在开始合理地运作:
function folderMap() {
var rootFolder=DriveApp.getFolderById("arbitraryFolderId");
var rootFiles=[];
var rootFolders=[];
var root=[rootFolders,rootFiles];
var i;
getChildren(rootFolder,root);
Logger.log(root);
if(rootFolders!==null){
for(i=0;i<rootFolders.length;i++){
var tempName=rootFolders[i].getName();
eval("var "+tempName+"Object=nextObject("+tempName+");");
getChildren(rootFolders[i],eval(tempName+"Object"));
Logger.log(tempName);
}
}
}
function getChildren(parent,parentObject){
var folders= parent.searchFolders('');
while (folders.hasNext()) {
var folder = folders.next();
parentObject[0].push(folder);
}
var files= parent.searchFiles('');
while (files.hasNext()) {
var file = files.next();
parentObject[1].push(file);
}
}
function nextObject(name){
var dynamic= name;
eval("var "+dynamic+"Folders=[];");
eval("var "+dynamic+"Files=[];");
var dummy=eval("var "+dynamic+"=["+dynamic+"Folders,"+dynamic+"Files];");
return dummy;
}
但是,这会返回错误SyntaxError: Missing ; before statement. (line 12, file "Code")
我已经尝试在此行之前添加额外的分号,调整括号并通常摆弄代码但我没做什么似乎解决了这个错误。
是否有一些非常简单的事情,我盯着我失踪的脸?
非常感谢任何帮助。
谢谢
编辑:为了澄清,第2行中的arbitraryFolderId
被文件夹的字符串ID替换,但是,我的作品域管理员已经要求我们不公开共享文件或文件夹ID;无论他们的共享权限如何。