LANG SELRCT

Apps Script Reference  (Create: Create new Spreadsheet | Create new Apps Script

Monday, August 13, 2018

[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

スプレッドシートA列にある複数のテキストをスライドに追加したい(Google Apps Script)

今回Google Apps Scriptでやりたいこと GoogleスプレッドシートA列にある複数の値を取得して Googleスライドに渡して 図形オブジェクトのテキストとして追加したい ① スプレッドシートのA列に値を入れておく ② Code.gsのinsertNewShape...