Apps Scriptリファレンス: Apps Script Reference |障害・課題追跡: IssueTracker |Google Workspace: Status Dashboard - Summary

2018年8月13日月曜日

[Deprecated]Google Driveの特定のフォルダ内のファイルを別のフォルダに移動したい


本投稿で書いた移動方法は廃止されました。

代わりにmoveToで移動できるようになりました。


移動元のフォルダから
移動先のフォルダにファイルを移動したい


この「移動する」を言い換えると


移動先のフォルダにファイルを追加して
移動元のフォルダからファイルを削除する


ことになるので


移動元のフォルダIDを
ORIGINAL_FOLDER_ID

移動先のフォルダIDを
TARGET_FOLDER_ID

として以下のコード.gsのように書くと実現できました


できましたが、、
Google Drive上で素直にファイルを選択して移動する方が早いですね

ファイル数が多い場合は起動時間を越えるのでその対応も必要になります



コード.gs
var ORIGINAL_FOLDER_ID = "移動元のフォルダID";
var TARGET_FOLDER_ID = "移動先のフォルダID";

function move_files() {
  var original = DriveApp.getFolderById(ORIGINAL_FOLDER_ID);
  var target = DriveApp.getFolderById(TARGET_FOLDER_ID);
  var contents = original.getFiles();
  while(contents.hasNext()) {
    var file = contents.next();
    target.addFile(file);
    original.removeFile(file);
  }
}
意訳
移動元のフォルダのIDを指定する(このフォルダから)
移動先のフォルダIDを指定する(このフォルダへ)

この機能がやること
移動元のフォルダを取得して
移動先のフォルダを取得して
移動元のフォルダ内のファイルを取得して
フォルダ内にファイルが有る限り以下を繰り返す
フォルダ内のファイルを順番に取得して
移動先のフォルダに追加して
移動元のフォルダからは削除する




参考

addFile(child)
https://developers.google.com/apps-script/reference/drive/folder#addFile(File)

removeFile(child)
https://developers.google.com/apps-script/reference/drive/folder#removeFile(File)

Latest post

Googleドキュメントに見出しを追加したい

今回の例では、ドキュメントの末尾に「見出しD」 を追加します。 見出しA, B, C, Dのスタイルは、見出し3 ( HEADING3 ) に設定しています。  下記Code.gsの  GOOGLE_DOCUMENT_URL を設定して  addHeadingToEnd()  を...