GASでは、 ファイルの移動をすることができません 。
そのため、 コピーしたあと、元ファイルの削除をすることで擬似的にファイルの移動を実現します。
具体的には、
① ファイルオブジェクト.makeCopy(名前, フォルダオブジェクト)
でコピー
② ファイルオブジェクト.getParents()
で親フォルダを取得、
③ 親フォルダ.removeFile(元ファイル)
で削除
という3ステップでコードを進行することとなります。
move_file_folder.js
function myFunction() {
movefile("移動されるファイルのID", "移動先のフォルダのID");
}
function movefile(fromid, destid) {
// コピー
var from = DriveApp.getFileById(fromid);
var dest = DriveApp.getFolderById(destid);
from.makeCopy(from.getName(), dest);
// 元ファイルを削除
var from_parents = from.getParents();
var folder = from_parents.next();
folder.removeFile(from);
}
以下の用に移動元フォルダと移動先フォルダを準備し、↑のコード(myFunction)を実行します。
↓ 移動元フォルダ
↓ 移動先フォルダ
結果として、
↓ 移動元フォルダ
↓ 移動先フォルダ
このように、ファイルが移動すれば成功です。
DriveAppでできること、ファイルオブジェクトでできること、フォルダオブジェクトでできることは少しずつ違うので注意しましょう。