我正在嘗試查找可能位于子檔案夾中的檔案,但它也可能位于子檔案夾的子檔案夾中。我遵循了這個答案的方法,但仍然......
當我將檔案放在'第二個子檔案夾中時,腳本找不到它。
function updateClientWb() {
var clientId = 'AA001'
var parent_folderID = 'folderidsafafdasadasda2D-U';
var parent_folder = DriveApp.getFolderById(parent_folderID);
var subFolders = parent_folder.getFolders();
var searchForClientId = "title contains '" clientId "'";
var clientSeoProjectWb = [];
while (subFolders.hasNext()) {
var thisSubFolder = subFolders.next();//THIS IS PROBABLY WHERE THE FLAW IS
var clientFiles = thisSubFolder.searchFiles(searchForClientId);
while (clientFiles.hasNext()) {
var files = clientFiles.next();
if (files.getName().indexOf('File Name Part') > -1) {
clientSeoProjectWb.push(files.getId());
}
}
}
return;
}
感謝你的幫助
uj5u.com熱心網友回復:
嘗試這樣的事情。請注意,這clientSeoProjectWB是在腳本檔案中定義的,而不是函式,因此兩個函式都可以與之互動。我沒有測驗它,但我認為這會讓你走上正確的軌道。startSearch確保在函式中標識了您的第一個檔案夾。
//need to have shared array
var clientSeoProjectWb =[];
function startSearch(){
searchFolder_(DriveApp.getFolderById('???topFolderID'))
//Final array with all files...
clientSeoProjectWb.forEach(x => Logger.log(x));
}
function searchaFolder_(_aFolder) {
var someFiles = _aFolder.getFiles();
while(someFiles.hasNext()){
var aFile = someFiles.next();
if(aFile.getName().indexOf('File Name Part') > -1){
//Found file add to array
clientSeoProjectWb.push(aFile.getId());
}
}
var someFolders = _aFolder.getFolders();
while(someFolders.hasNext()){
var newFolder = someFolders.next();
//launch function again with new folder
searchaFolder_(newFolder);
}
}
uj5u.com熱心網友回復:
檔案夾中的檔案
function getFilesAndFolders() {
const fldr = DriveApp.getFolderById(gobj.globals.projectsfolderid);
SpreadsheetApp.getActive().getSheetByName('Sheet0').clearContents();
SpreadsheetApp.getActive().toast('Entry');
getFnF(fldr);
SpreadsheetApp.getActive().toast('EOF');
}
function getFnF1(folder = DriveApp.getRootFolder()) {
let tree = JSON.parse(PropertiesService.getScriptProperties().getProperty('FnF'));
//Logger.log(JSON.stringify(tree));
if (tree.level < level) {
tree.level = level;
PropertiesService.getScriptProperties().setProperty('FnF', JSON.stringify(tree));
}
const files = folder.getFiles();
let row = Array.from([...Array(level).keys()], ((x, i) => { if (i == level - 1) { x = folder.getName(); } else { x = ''; } return x; }));
tree.txt.push(row);
row = Array.from([...Array(level).keys()], ((x, i) => { if (i == level - 1) { x = 'bold'; } else { x = 'normal'; } return x; }));
tree.fwt.push(row);
PropertiesService.getScriptProperties().setProperty('FnF', JSON.stringify(tree));
if (files.hasNext()) {
let row = Array.from([...Array(level).keys()], ((x, i) => { if (i == level - 1) { x = 'Files:'; } else { x = ''; } return x; }));
tree.txt.push(row);
tree.fwt.push(['normal']);
PropertiesService.getScriptProperties().setProperty('FnF', JSON.stringify(tree));
}
while (files.hasNext()) {
let file = files.next();
let row = Array.from([...Array(level 1).keys()], ((x, i) => { if (i == level) { x = file.getName(); } else { x = ''; } return x; }));
tree.txt.push(row);
tree.fwt.push(['normal']);
PropertiesService.getScriptProperties().setProperty('FnF', JSON.stringify(tree));
}
const subfolders = folder.getFolders()
while (subfolders.hasNext()) {
let subfolder = subfolders.next();
level ;
getFnF1(subfolder);
}
level--;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/481069.html
下一篇:腳本隨機播放單元格值而不是公式
