2014-09-30 87 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

相關問題