如何创建一个文件夹,如果它不存在?
问题描述:
我试图创建一个文件夹,如果它不存在,但代码每次运行时都会创建一个新文件夹。我不知道我的代码是否正确。如何创建一个文件夹,如果它不存在?
这里是我的代码:
var alumnopath = DocsList.getFolderById ('0Bzgw8SlR34pUbFl5a2tzU2F0SUk');
var alumno2 = alumno.toString();
Logger.log(alumno2);
try {
var folderalumno = alumnopath.getFolder(alumno2);
if (folderalumno == undefined){
var folderalumno = alumnopath.createFolder(alumno2);
}
else {
var folderalumno = alumnopath.getFolder(alumno2);
}
}
catch(e) {
var folderalumno = alumnopath.createFolder(alumno2);
}
folderalumno.createFile(pdf.getAs('application/pdf')).rename( alumno + " , " + fechafor);
感谢您的帮助!
答
当你使用try/catch结构时,你实际上不需要if条件。 try/catch结构处理文件夹本身不存在的情况。
试试这样说:
var alumnopath = DocsList.getFolderById ('0Bzgw8SlR34pUbFl5a2tzU2F0SUk');
var alumno2 = alumno.toString();
Logger.log(alumno2);
try{
var folderalumno = alumnopath.getFolder(alumno2);
}
catch(e) {
var folderalumno = alumnopath.createFolder(alumno2);
}
folderalumno.createFile(pdf.getAs('application/pdf')).rename( alumno + " , " + fechafor);
答
谷歌已经改变了它的脚本。我知道这是一个旧帖子,但这是我能想出的最佳答案:
function getFolder(parent_folder,folder_name){
var folders = parent_folder.getFolders();
while (folders.hasNext()) {
var folder = folders.next();
if(folder_name == folder.getName()) {
return folder;
}
}
return false;
}
var parent_folder = DriveApp.getFolderById(//id\\);
var folderName = getFolders(parent_folder,name);
if (folderName === false){
folderName = outputfolderId.createFolder(name);
}
希望这可以帮助别人!
答
由于谷歌Apps脚本代码在2016年八月
var par_fdr = DriveApp.getFolderById(123456789A); // replace the ID
var fdr_name = "child_fdr";
try {
var newFdr = par_fdr.getFoldersByName(fdr_name).next();
}
catch(e) {
var newFdr = par_fdr.createFolder(fdr_name);
}
非常感谢!有用!!! – 2014-11-25 17:43:34
不客气:-),请考虑接受答案。谢谢。 – 2014-11-25 17:47:21