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 Formsで記述式の質問に字数制限を設定したい

記述式の質問には「回答の検証」を設定することができます フォームの編集画面 右下の︙メニューで「回答の検証」を選択します 検証方法には「数値」「テキスト」「長さ」「正規表現」という種類があります 今回は字数制限したいので「長さ」を選びます 長さには「最大文字数」か「最小文字数」を...