2013-12-10 69 views
1

我有一個腳本,由(唯一的)的文件名查找文件:谷歌Apps的腳本文件名查找失敗

function getFileByName(filename) { 
    var files = DocsList.getRootFolder().find("title:" + '"' + filename + '"');  
    Logger.log("looking for " + filename); 
    for(var i in files){ 
    Logger.log("checking " + files[i].getName()); 
    if (files[i].getName() == filename) 
    { 
     Logger.log("found " + files[i].getName()); 
     return files[i]; 
    } 
    } //for i in files  
    Logger.log("did not find " + filename); 
} //getFileByName_ 

它的工作就像一個魅力了幾個月,直到昨天。現在,它似乎並不像循環運行(我加了Logger.log("checking " + files[i].getName());線調試,但我從來沒有看到日誌中顯示的。

調試任何想法(或其他的想法?)?謝謝!

+0

什麼是files.length? –

+0

調試它一步一步的輸出。你確定該文件是在根和不在另一個子文件夾中?如果不使用getRootFolder並直接在整個驅動器中搜索另一個文件夾。 –

+0

files.length = 0.它絕對在第e根,就是過去三個月的情況。有沒有不同的功能。雖然搜索整個驅動​​器?感謝您的想法。 – DeltaG

回答

0

刪除「標題」,只是查找文件名住的代碼波紋管。

function getFileByName(filename) { 
var files = DocsList.getRootFolder().find(filename);  
Logger.log("looking for " + filename); 
for(var i in files){ 
Logger.log("checking " + files[i].getName()); 
if (files[i].getName() == filename) 
{ 
    Logger.log("found " + files[i].getName()); 
    return files[i]; 
} 
} //for i in files  
Logger.log("did not find " + filename); 
} //getFileByName_ 
+0

這工作,但我以前曾嘗試'var file = DocsList.getRootFolder()。find(「Reassessment Requesttemp」);',這是我傳遞給它的值。任何想法他們爲什麼不給出相同的行爲? – DeltaG

+0

對不起,但我沒有小看你試過的東西。你能解釋一點點嗎? –

+1

@ DeltaG-我可以問你爲什麼搜索'標題:文件名'而不是簡單的文件名在第一個地方?你選擇的理念是什麼? –