我正在尝试将 Google Drive 中的特定文件插入到文件夹中。我还想检查是否有一个具有名称的文件夹'testFolder'
:如果是,则将文件插入到已存在的文件夹中,否则创建一个名为'testFolder'
.
这是我到目前为止所想到的,但它总是创建一个名为的新文件夹'testFolder'
(所以用户有大约 10 个名为'testFolder'
现在 - 它不会重用第一个文件夹)。
var copyId = /* the id of the file to copy */;
function InsertFileToFolder() {
var file = DriveApp.getFileById(copyId);
var folder;
if (folderExists() == true){
folder = DriveApp.getFolder("testFolder"); //<-- No such thing in GAS i think?
} else {
folder = DriveApp.createFolder("testFolder");
}
folder.addFile(file);
}
//Check whether folder exists or not
function folderExists() {
var folders = DriveApp.getFolders();
var flag = false;
for(var i = 0; i < folders.length; i++){
if(folders[i].getName() == 'testFolder'){
flag = true;
break;
}
}
return flag;
}
没有length
的财产folders
。你需要使用hasNext()
.
Google 文档 - 文件夹类 https://developers.google.com/apps-script/reference/drive/folder
// Log the name of every folder in the user's Drive.
var folder,folders;
folders = DriveApp.getFolders();
while (folders.hasNext()) {
folder = folders.next();
Logger.log(folder.getName());
}
如果找到正在查找的文件夹,此代码将返回文件夹 ID:
function InsertFileToFolder() {
var file,folder,
folderIdOrFalse;
file = DriveApp.getFileById(copyId);
folderIdOrFalse = folderExists();
if (folderIdOrFalse !== false) {
folder = DriveApp.getFolderById(folderIdOrFalse);
} else {
folder = DriveApp.createFolder("testFolder");
}
folder.addFile(file);
};
function folderExists() { //Check whether folder exists or not
var folders = DriveApp.getFolders();
var theReturn = false,
i=0,
folderName = "",
folder;
while (folders.hasNext()) {
folder = folders.next();
folderName = folder.getName();
if (folderName === 'testFolder') {
theReturn = folder.getId();
break;
};
};
return theReturn;
};
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)