如果文件夹不存在,如何创建?

Mar*_*lez 8 google-apps-script google-drive-api

我正在尝试创建一个文件夹,如果它不存在,但代码每次运行时都会创建一个新文件夹.我不知道我的代码是否正确.

这是我的代码:

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);
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助!!

Ser*_*sas 5

使用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);
Run Code Online (Sandbox Code Playgroud)


yoo*_*ghm 5

截至2016年8月的Google Apps脚本代码

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);
}
Run Code Online (Sandbox Code Playgroud)


Avi*_*vid 5

如果其他人遇到此问题,您可以像这样使用三元运算符(根据需要替换“Name_of_Folder”字符串):

var alumnopath = DriveApp.getFoldersByName("Name_of_Folder");
var folderalumno = alumnopath.hasNext() ? 
    alumnopath.next() : DriveApp.createFolder("Name_of_Folder");
Run Code Online (Sandbox Code Playgroud)