Google云端硬盘-如何列出指定文件夹中的所有文件

理查德·艾奇森

嗨,我被这种情况困扰着,我尝试了许多不同的方法,但是我无法获得想要的结果。

情况:Google驱动器上托管的文件夹中有大量文件。例如,用于报告的单个客户端文件夹包含2000-10000个文件(这只会变得更大),我希望能够列出带有标题和文件ID以及父文件夹ID的这些文件,以便我可以创建指向这些文件的直接链接。据我了解,我可以使用google drive来做到这一点:drive-api-client-php我已经安装了一个项目,并且具有Client ID和Client机密,我已经下载了subversion编写器,google-api和drive-api-client- php并使用XAMPP

到目前为止,我的工作是:我一直在浏览Google文档并观看他们提供的教程视频。我已经尝试过在该网页上提供google示例,这是我需要的开始。这将列出具有ID和标题或您选择的字段的文件夹中的文件-这里的两个问题是您无法指定想要结果的文件夹,并且结果的最大数量限制为1000。需要10,000。

我也看了一些谷歌的Apps脚本在这里,这似乎是VBA在Excel中拉文件ID和标题等使用,但是这也仅限于结果的最大数量,然后超时问题。这是我想要的结果的确切类型,没有限制。

我的问题是:在Google驱动器的指定文件夹中列出带有标题的10,000个文件ID时,我有哪些选择?从头到尾的过程是什么,因为我觉得我可能早早缺少了一个基本点,这影响了我的结果可能性。我对此很灵活,提取数据后就可以处理数据,只是首先获取数据对我来说很关键。期待您的回复,非常感谢。我希望这足够清楚并且有意义。

理查德·艾奇森

这是我想出的,这要归功于上面的代码和我发现的其他一些代码的帮助,将两者结合在一起,可以满足我的需要。这可能对其他人有用。

谢谢

function listFilesInFolder() {
var MAX_FILES = 2000; //use a safe value, don't be greedy
var id = 'FOLDER_ID_HERE'; 
var scriptProperties = PropertiesService.getScriptProperties();
var lastExecution = scriptProperties.getProperty('LAST_EXECUTION');
var sheet = SpreadsheetApp.getActiveSheet();
var data;
if( lastExecution === null )
lastExecution = '';

var continuationToken = scriptProperties.getProperty('IMPORT_ALL_FILES_CONTINUATION_TOKEN');
  var iterator = continuationToken == null ?
  DriveApp.getFolderById(id).getFiles() : DriveApp.continueFileIterator(continuationToken);


 try { 
   for( var i = 0; i < MAX_FILES && iterator.hasNext(); ++i ) {
   var file = iterator.next();
   var dateCreated = formatDate(file.getDateCreated());
    if(dateCreated > lastExecution)
     processFile(file);
    data = [
       i,
       file.getName(),
       file.getId()
      ];        

    sheet.appendRow(data);
}
} catch(err) {
 Logger.log(err);
}

if( iterator.hasNext() ) {
 scriptProperties.setProperty('IMPORT_ALL_FILES_CONTINUATION_TOKEN', iterator.getContinuationToken());
 } else { // Finished processing files so delete continuation token
 scriptProperties.deleteProperty('IMPORT_ALL_FILES_CONTINUATION_TOKEN');
 scriptProperties.setProperty('LAST_EXECUTION', formatDate(new Date()));
 }
 }

function formatDate(date) { return Utilities.formatDate(date, "GMT", "yyyy-MM-dd HH:mm:ss"); }

function processFile(file) {
var id = file.getId();
var name = file.getName();
//your processing...
Logger.log(name);

}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

列出云端硬盘中的所有文件

如何在Google云端硬盘中搜索子文件夹和子文件夹?

将文件夹从Google Colab移至Google云端硬盘

Python:如何从Google云端硬盘下载整个文件夹

如何在一个Google云端硬盘文件夹中访问所有文件?

如何在javascript中递归列出N级以下的Google云端硬盘文件和文件夹?

Google云端硬盘:删除1天以上的文件夹

取消共享Google云端硬盘上的所有文件,文件夹和子文件夹

如何在“共享的Google云端硬盘”下读取多个文件夹中的文件?

Google云端硬盘从文件夹获取文件

使用http上传到Google云端硬盘文件夹

如何从Google云端硬盘读取txt文件?

在Python中列出所有Google云端硬盘文件和文件夹,并保存ID

如何在Google云端硬盘中打印所有父文件夹名称?

禁用Google云端硬盘和云端硬盘文件夹之间的反射

从共享的Google云端硬盘文件夹下载所有文件夹

停用Google云端硬盘文件夹外部的Google云端硬盘上下文菜单

在DrEdit中列出Google云端硬盘中的所有文件和文件夹

动态创建和共享Google云端硬盘文件夹

如何从Google云端硬盘删除文件

Python:如何使用folderId将文件上传到Google云端硬盘中的特定文件夹

Google云端硬盘api设置文件夹的父级

如何下载Google云端硬盘?

Google云端硬盘中文件夹的大小

列出网页上给定文件夹中的Google云端硬盘文件

Google云端硬盘API不会列出我的所有文件

获取Google云端硬盘文件夹的ResourceID

Google云端硬盘文件夹访问信息

如何从“我的云端硬盘”列出共享文件夹