makeCopy – Googleドライブのファイルをコピーする
GoogleドライブのファイルをコピーするにはファイルオブジェクトのmakeCopyメソッドを使います。
フォルダにこんなファイルがあるとします。

このファイルをコピーするコード
const copyFile = () => {
const driveApp = DriveApp
const folder = driveApp.getFolderById('フォルダIDが入ります')
const files = folder.getFiles()
while (files.hasNext()) {
const file = files.next()
const copiedFile = file.makeCopy()
console.log(copiedFile)
}
}
実行すると、、、

同一のフォルダにコピーされ、コピー元のファイル名に「 のコピー」がつきます。
コピー先のフォルダを変更したいとき
コピー先のフォルダを別のフォルダにするときは、
const copyFile = () => {
const driveApp = DriveApp
const folder = driveApp.getFolderById('コピー元のファイルがあるフォルダのIDが入ります')
const copyFolder = driveApp.getFolderById('コピー先のフォルダIDが入ります')
const files = folder.getFiles()
while (files.hasNext()) {
const file = files.next()
const copiedFile = file.makeCopy(copyFolder)
console.log(copiedFile)
}
}
8行目のfile.makeCopy( )の( )の中にコピー先のフォルダオブジェクトを指定します。
実行結果

うおっ、2つもコピーがありますね。
2つある理由はコピー元のフォルダに2つファイルが存在しているからです。
コピー元のフォルダ

ほら、ファイルが2つありますよね。よってコピーされるファイルも2つなんです。
ファイルを指定してコピーしたい
2つのファイルをコピーするんじゃなくて、任意のファイルを1つだけコピーしたいとします。
たとえば、コピー元のフォルダの「コピーされるファイル のコピー」だけコピーしたいときはどうしましょうか?
ファイル名で特定するのが簡単そうですよね。
const copyFile = () => {
const driveApp = DriveApp
const folder = driveApp.getFolderById('コピー元のファイルがあるフォルダのIDが入ります')
const copyFolder = driveApp.getFolderById('コピー先のフォルダIDが入ります')
const files = folder.getFiles()
while (files.hasNext()) {
const file = files.next()
if (file.getName() !== 'コピーされるファイル のコピー') return
const copiedFile = file.makeCopy(copyFolder)
console.log(copiedFile)
}
}
付け足したのは8行目です。ファイル名が「コピーされるファイル のコピー」の場合のみ、9行目以下のコードが実行されるようにしています。
こんなふうに条件を指定すると任意のファイルのコピーが可能です。
moveTo – ファイルを移動する
コピーと似たようなメソッドに、ファイルを移動するmoveToメソッドがあります。
移動するとどうなるのか試してみます。
コード
const copyFile = () => {
const driveApp = DriveApp
const folder = driveApp.getFolderById('コピー元のファイルがあるフォルダのIDが入ります')
const copyFolder = driveApp.getFolderById('コピー先のフォルダIDが入ります')
const files = folder.getFiles()
while (files.hasNext()) {
const file = files.next()
if (file.getName() !== 'コピーされるファイル のコピー') return
const movedFile = file.moveTo(copyFolder)
console.log(movedFile)
}
}
実行するとコピー元フォルダにあった「コピーされるファイル のコピー」は雲散霧消しておりまして、

コピー先フォルダに移動してます。あれま。

移動するので元のフォルダからはなくなります。
当たり前ですよね。
元のフォルダにファイルを残しておきたいときはmakeCopyメソッドを使うといいでしょうし、元のフォルダに残しておきたくないときはmoveToメソッドです。
makeCopy( )は( )の中に何も入れなくてもエラーになりませんが、moveTo( )は移動のためのメソッドなので、移動先がないとエラーになります。
普通に考えればそりゃそうなんですが、テンパってると気づかなかったりするのでご注意を。
ソニックブーム
