スポンサーリンク

ファイルの移動

Google Apps Script(GAS)でファイルの移動をする方法です。

サンプルプログラム

function sample1() {

  // カレントフォルダの取得
  // ※ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■の部分は移動したいフォルダIDに置き換えてください。
  // ※ ▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲の部分は移動したいファイルIDに置き換えてください。
  const folder = moveFile("■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■", "▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲");

  Logger.log(folder);
}

/**
 * ファイルの移動
 * @param {String} 移動先のフォルダID
 * @param {String} 移動させるファイルID
 */
function moveFile(folderId, fileId) {

  // 移動させるファイルのDriveApp.Fileオブジェクトを取得
  const file = DriveApp.getFileById(fileId);

  // 指定したフォルダへファイルを追加
  DriveApp.getFolderById(folderId).addFile(file);

  // 移動元のファイルの親フォルダを取得
  const currentFolder = getCurrentFolder(file);

  // 移動元のファイルを削除
  currentFolder.removeFile(file);
}

/**
 * カレントフォルダを取得
 * @param {DriveApp.File} ファイル
 * @return {DriveApp.Folder} フォルダ
 */
function getCurrentFolder(file) {
  
  // 親フォルダを取得
  const parentFolder = file.getParents();

  // 取得したフォルダを返却
  return parentFolder.next();
}
スポンサーリンク

解説

Google Apps Script(GAS)ではファイルを移動させる構文は準備されていません。そのため、移動先のフォルダへファイルを追加し、移動元のファイルを削除する処理を行っています。

移動元のファイルを削除する場合は、ファイルのフォルダ情報が必要となるためカレントフォルダを取得するメソッドも使用しています。詳細は以下を参照してください。

上記では汎用性を持たせるため、メソッドにしています。

スポンサーリンク
おすすめの記事