我的腳本有問題,我希望它在所有檔案夾和子檔案夾中搜索包含這個詞的檔案。但它只停在第一個檔案夾。謝謝您的幫助
function doGet(){
return HtmlService.createHtmlOutputFromFile('search').setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL);
}
function idevlupSearch(sparams) {
if (sparams.length==0){
return `<em style='color:blue'> Champs de saisie vide`;
};
//Folder start
var folderName = "0-CentreDeRessources" ;
var listSearch = [];
var folder = DriveApp.getFoldersByName(folderName);
while (folder.hasNext())
{
Logger.log(folder);
var files = folder.next().searchFiles('title contains "' sparams '" or fullText contains "' sparams '"');
while (files.hasNext())
{
var file = files.next();
listSearch.push("<li> <a href='" file.getUrl() "'>" file.getName() "</a>" file "</li>");
}
}
Logger.log(listSearch);
if (listSearch.length > 0) {
listSearch.unshift("<ul>");
listSearch.shift("</ul>");
return listSearch;
}else{
return `<em style='color:red'> Pas de document trouvé !`;
}
}
uj5u.com熱心網友回復:
我相信你的目標如下。
- 根據評論中的討論,您不想創建包含所有子檔案夾名稱的路徑。您只想搜索子檔案夾下的檔案并想要檢索搜索到的檔案名。
在這種情況下,如何進行以下修改?
修改后的腳本:
function idevlupSearch(sparams) {
if (sparams.length == 0) {
return `<em style='color:blue'> Champs de saisie vide`;
};
var folderName = "0-CentreDeRessources";
var folder = DriveApp.getFoldersByName(folderName).next();
var searchFlies = (folder, res = []) => {
var files = folder.searchFiles(`(title contains '${sparams}' or fullText contains '${sparams}') and trashed=false`);
while (files.hasNext()) {
var file = files.next();
res.push({name: file.getName(), url: file.getUrl()});
}
var folders = folder.getFolders();
while (folders.hasNext()) searchFlies(folders.next(), res);
return res;
}
var listSearch = searchFlies(folder);
return listSearch.length > 0 ? listSearch.reduce((s, {name, url}) => s = `<li><a href='${url}'>${name}</a></li>`
, "<ul>") "</ul>" : `<em style='color:red'> Pas de document trouvé !`;
}
筆記:
- 我無法理解該功能
idevlupSearch是如何運行的。但是,在您的腳本中,使用了 Web Apps。在這種情況下,當您修改 Google Apps 腳本時,請將部署修改為新版本。這樣,修改后的腳本就會反映在 Web Apps 中。請注意這一點。 - 您可以在“重新部署 Web 應用程式而不更改新 IDE 的 Web 應用程式的 URL ”的報告中看到這方面的詳細資訊。
關于一些不清楚的地方,我猜測如下。
- 我不明白
file的</a>" file "</li>在你的腳本。因為在你的腳本中,file是類檔案的物件。所以在這次修改中,我修改為<li><a href='${url}'>${name}</a></li>. - 我不明白是否有幾個相同的檔案夾名稱“0-CentreDeRessources”。所以在這次修改中,我猜測“0-CentreDeRessources”的檔案夾名稱只是你的Google Drive中的一個檔案夾。
- 我無法理解函式的輸出
idevlupSearch。在您的腳本中,文本或陣列從函式回傳idevlupSearch。但我不知道呼叫idevlupSearch. 所以在這個修改中,回傳了一個文本。
如果我的修改沒有按照你期望的方向進行,請根據你的實際情況修改上面的腳本。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/404525.html
標籤:
