首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在迭代文件夹ID时搜索文件?

如何在迭代文件夹ID时搜索文件?
EN

Stack Overflow用户
提问于 2022-12-01 05:29:23
回答 1查看 37关注 0票数 1

我试图遍历标准化的子文件夹结构,以检查每个子文件夹结构中是否都有特定的文件类型。我进行了小规模的测试,以确保我能够实现对文件夹的适当搜索,并指出是否存在特定的文件类型。我能够准确地用脚本进行检查。然后,我编写了一个for循环,迭代大约250个文件夹来执行这些检查,但是文件搜索似乎不再有效。For循环的其他部分按预期工作,例如列出所有文件夹名,但随后每个单元格都填充一个"x“表示错误。

我已经尝试找出了为什么当搜索在for循环中时,它不再像预期的那样运行,但无法找到它。

用于单个文件搜索的脚本:

代码语言:javascript
复制
function subfolderIterator(){


let FolderID = 'XXXX'

let testSpreadsheet = SpreadsheetApp.openById('XXXXXX')

try  {
let studioFourQuery = DriveApp.getFolderById(FolderID)
> .getFoldersByName('04 | Studio-4').next().searchFiles("fullText contains '.tfs'").next()

if (studioFourQuery){
testSpreadsheet.getRange("Audit!D2").setValue('√')

>  }
> }

catch (e){
testSpreadsheet.getRange("Audit!D2").setValue('X')
> }

try {
let studioFiveQuery = DriveApp.getFolderById(FolderId)
> .getFoldersByName('05 | Studio-5')
> .next().searchFiles("fullText contains '.tfs'").next()


if (studioFiveQuery){
testSpreadsheet.getRange("Audit!E2").setValue('√')
>   }
> }

catch (e){
testSpreadsheet.getRange("Audit!E2").setValue('X')
> }

> }
> 

脚本与for循环,将我的电子表格中的所有值设置为"x“。同样,脚本正确地列出了所有文件夹名:

代码语言:javascript
复制
> 
function FileSearchLoop(){

let clientFolder05ID = 'xxxx' 
let subNames = DriveApp.getFolderById(clientFolder05ID).getFolders()
let myarr = []

while (subNames.hasNext()){

let ids = subNames.next().getId()
>    //Logger.log(ids)

myarr.push(ids)
>    //Logger.log(myarr)

>  }

Logger.log(myarr)   

let testSpreadsheet = SpreadsheetApp.openById('xyz')

for(i=0;i < myarr.length; i++){
let lr = testSpreadsheet.getSheetByName('Audit').getLastRow()
let allClientFolderNames = DriveApp.getFolderById(myarr[i]).getName()
testSpreadsheet.getSheetByName('Audit').getRange(lr+1,1).setValue(allClientFolderNames)


try  {
let studioFourQuery = DriveApp.getFolderById(myarr[i]).getFoldersByName('04 | Studio-4').next().searchFiles("fullText contains '.tfs'").next()

Logger.log(studioFourQuery)

if (studioFourQuery){
testSpreadsheet.getSheetByName('Audit').getRange(lr+1,4).setValue('√')

>  }
> }

catch (e){
> //testSpreadsheet.getRange("Audit!D2").setValue('X')
testSpreadsheet.getSheetByName('Audit').getRange(lr+1,4).setValue('X')
Logger.log(e)

> }

try {
let studioFiveQuery = DriveApp.getFolderById(myarr[i]).getFoldersByName('05 | Studio-5').next().searchFiles("fullText contains '.tfs'").next()


if (studioFiveQuery){
testSpreadsheet.getRange(lr+1,5).setValue('√')
>   }
> }

catch (e){
testSpreadsheet.getRange(lr+1,5).setValue('X')
>  }


> }


> }

任何帮助都是非常感谢的!

EN

回答 1

Stack Overflow用户

发布于 2022-12-01 17:34:46

如果你发现了这个异常,你可能会得到答案。

代码语言:javascript
复制
catch (e){
  Logger.log(e) // add this
  testSpreadsheet.getRange(lr+1,5).setValue('X')
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74637283

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档