本投稿で書いた移動方法は廃止されました。
代わりに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)