2

現在 Google ドライブのゴミ箱にあるすべてのファイルを特定のフォルダに移動するか、移動できない場合は元の場所に復元する必要があります。いくつかの混乱が発生し、ゴミ箱に貴重なファイルが 6 ギガほどあるので、それらを別のディレクトリに移動し、バックアップするか、ローカルで同期して、後でそれらのファイルを表示することをお勧めします。

これは私がこれまで持っているスクリプトです:

function moveFilesFromTrash() {
  var pageSize = 200;
  var files = null;
  var token = null;

  var cestisti = DocsList.getFolder('cestisti');

  do {
    var result = DocsList.getAllFilesForPaging(pageSize, token);
    files = result.getFiles();
    token = result.getToken();
    for (var i = 0; i < files.length; i++) {
      if (files[i].isTrashed == true) {
        Logger.log(files[i].getName());
//      files[i].setTrashed(false)
        files[i].addToFolder(cestisti);
    }
  } while (files.length == pageSize);
}

問題は、それがうまくいかないということです。

ファイルアイテムをページングするコードの部分は機能します。私の他の作業スクリプトから取得しました。ごみ箱フォルダーまたはラベルを解析するかどうかはわかりません。setTrashed()またはうまくいくかどうかはわかりませんaddtofolder()-わかりません。アイテムを復元するのではなくコピーしたいので、前者はコメントアウトされていますが、それが不可能な場合は復元できます。

4

3 に答える 3

1

ファイルはフォルダーにはないことに注意してください。ファイルにはフォルダーと呼ばれるラベルがあり、複数のフォルダー (ラベル) が存在する場合があります。「ゴミ箱」でさえラベルです。ごみ箱に設定すると、他のラベル (フォルダ) を上書きするごみ箱のラベルが作成されます。以下のコードは何も動かしません。ラベル(フォルダー)をリセットするだけです編集:ゴミ箱はラベルではなく条件です:他のすべてが保持されます

    for (var i = 0; i < files.length; i++) {
      if (files[i].isTrashed()) {  // don't forget ()
        Logger.log(files[i].getName());
        var folders = files[i].getParents();
        // remove existing folders(labels)
        for(var f = 0; f < folders.length; f++ ) {
          files[i].removeFromFolder( folders[f] );
        };
        // remove trashed label
        files[i].setTrashed(false);
        // add cestisti label(add to cestisti folder)
        files[i].addToFolder(cestisti);
       }
    }
于 2013-01-27T14:11:32.170 に答える
1

if (files[i].isTrashed() == true) を試し てください

問題を絞り込むために、いくつかの診断 (Logger.log) を入れることをお勧めします。

于 2013-01-25T18:52:09.590 に答える