2014-09-30 122 views
6

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

这里是我的代码:

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); 

感谢您的帮助!

回答

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); 
+0

非常感谢!有用!!! – 2014-11-25 17:43:34

+1

不客气:-),请考虑接受答案。谢谢。 – 2014-11-25 17:47:21

2

谷歌已经改变了它的脚本。我知道这是一个旧帖子,但这是我能想出的最佳答案:

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); 
} 

希望这可以帮助别人!

5

由于谷歌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); 
} 
+0

这就是我所做的,但我发现getFoldersByName(fdr_name).next()在没有匹配时没有返回错误。我最后在try:部分添加了“var name = newFdr.getName()”来强制失败。这似乎解决了我的问题,但我仍然不确定为什么需要它。 – Craig 2017-03-04 22:21:33

+0

谢谢!我花了一段时间Google搜索最终找到了这个答案,现在我的脚本正常工作。 – Ryan 2017-05-13 01:09:54