新しい Docslist Tokenとget*ForPaging()
オプションが利用可能になったことに注意しますが、任意に大きなファイル/フォルダー ツリーの「すべてのファイルとフォルダー」を処理するアルゴリズムにまだ苦労しています。
n 個のファイルとフォルダーを持つ Google ドライブ ベースの Web ファイル システムを想定します。Google Apps Script を使いこなすには、6 分間を複数回実行する必要があります。毎晩、開始フォルダーの下にあるサブフォルダーのツリーで 30 日以上経過したすべてのファイルを処理する必要があります。各ファイルを一度だけ処理する必要があります (ただし、私の関数はべき等であるため、ファイルに対して再度実行してもかまいません)。
再帰アルゴは機能していますが、欠けているのは、スクリプトを呼び出すたびにフォルダー ツリーの一番上から開始する必要がないように、プレースホルダーを使用する方法です。6 分で処理できるのは、数百のフォルダーと数千のファイルだけです。
私の質問は、保存できるインデックスと、次回中断したところから開始する方法です。
トークンまたは最後に完了したフォルダー パス "/mytop/sub4/subsub47/" を保存することを考えましたが、それは別の呼び出しでどのように役立ちますか? 私がそこから始めた場合、そこから誤ってツリーをたどり、兄弟と祖先のフォルダーを見逃すことになります。
「検索」メソッドと「before:2012/10...」スタイル検索の使用について考えましたが、それをツリー内のファイル (単一フォルダーのみ) に制限する方法はありません。
コードは標準の再帰的な getFolders/getFiles であり、実際には質問の核心とは関係がないため、貼り付けていません。