求助:DriveApp.getFiles()未返回全部文件,仅获取7个中的5个
解决DriveApp.getFiles()无法返回全部文件的问题
嘿,我一眼就看到你代码里的关键问题啦——DriveApp.getFiles()方法根本不支持start和max这两个参数!你传入的这两个参数会被系统直接忽略,但反而可能干扰迭代器的正常工作,这就是你只拿到7个文件里5个的核心原因。
修正后的基础代码
直接调用无参数的getFiles(),它会返回「我的云端硬盘」内所有文件的迭代器,你只需要正常遍历即可:
var results = DriveApp.getFiles(); while(results.hasNext()) { var result = results.next(); // 可以加一行日志查看每个文件的名称,方便确认是否拿到全部 Logger.log("文件名称:" + result.getName()); } Logger.log("test");
如果需要限制获取数量
要是你确实需要控制返回的文件数量(比如只拿前7个),别用不存在的参数,手动计数控制就行:
var maxCount = 7; var currentCount = 0; var results = DriveApp.getFiles(); while(results.hasNext() && currentCount < maxCount) { var result = results.next(); Logger.log("文件名称:" + result.getName()); currentCount++; } Logger.log("test");
额外排查点
如果修正后还是少文件,你可以检查下那2个“失踪”的文件:
- 是不是真的在「我的云端硬盘」里,而不是共享文件夹或者团队盘里?(
getFiles()只返回“我的云端硬盘”的文件,共享文件夹的文件需要先找到对应文件夹再遍历) - 有没有被设置为隐藏,或者你有没有访问权限?
内容的提问来源于stack exchange,提问作者Tony Nasr
相关产品推荐
相关产品推荐

