Drive

【GAS】ファイルを日次で自動バックアップ② ファイルをコピーする

前回のおさらい

前回は大事なファイルが保存されたフォルダに「バックアップ」フォルダをつくりました。

つくった「バックアップ」フォルダのフォルダIDを取得しました。


今回は大事なファイルをコピーします。

Google Apps Scriptのファイルをつくる

バックアップの仕組みはGoogle Apps Script(通称:GAS(ガス))を使ってつくります。

GASを書くファイルをつくります。

どのフォルダでもいいので右クリックでメニューをひらいてGoogle Apps Scriptをクリックします

Google Apps Scriptはメニューの「その他」の中にあります。

ファイルをつくると↓の画面がひらきます。「スクリプトを作成」を選びます。


↓のようなエディタ画面がひらけば成功です。


左上の「無題のプロジェクト」をクリックしてファイル名を変更します。

わかりやすい名前がいいですね。


エディタ画面がこのようになっていれば成功です。

ちょう大事なファイルのコピーをとる

ちょう大事なファイルのコピーをとるために取得→コピーの2段構えでいきます。

  1. ファイルを取得する
  2. ファイルのコピーをとる

ファイルを取得する

ファイルを取得するためのコード

const getImportantFiles = () => {
  const driveApp = DriveApp
  const folder = driveApp.getFolderById('ちょう大事なフォルダのID ※バックアップフォルダではない')
  const files = folder.getFiles()
}


まずはちょう大事なファイルが入っているフォルダのIDからフォルダを取得します。

次にそのフォルダに入っているファイルをgetFilesメソッドですべて取得しています。

getFilesメソッド ー フォルダに入っているファイルをすべて取得するメソッド

構文:フォルダオブジェクト.getFiles()

戻り値:ファイルイテレーター

参照)Google Apps Scriptのマニュアル フォルダクラス


このコードで得られるのはファイルイテレーターです。

なんじゃそら?という人は↓を読んでみてください。


ファイルイテレーターとはファイルオブジェクトを反復生成するためのオブジェクトです。ファイルそのものではないのでご注意ください。

ファイルのコピーを取る

首尾よく取得したファイルイテレーターからファイルオブジェクトを生成しつつコピーをします。

コード

const getImportantFiles = () => {
  // ファイルを取得している
  const driveApp = DriveApp
  const folder = driveApp.getFolderById('ちょう大事なフォルダのID ※バックアップではない')
  const files = folder.getFiles()

  // バックアップフォルダにファイルのコピーを作成している
  while (files.hasNext()) {
    const backupFolder = driveApp.getFolderById('バックアップフォルダのID')
    const file = files.next()
    file.makeCopy(backupFolder)
  }
}

8行目のwhile (files.hasNext()) { 以降でバックアップフォルダにファイルのコピーを作成しています。

makeCopyメソッド ー ファイルのコピーをとるメソッド

構文:ファイルオブジェクト.getFiles(保存先のフォルダ)

戻り値:ファイルオブジェクト

参照)Google Apps Scriptのマニュアル ファイルクラス


実行結果


というわけでバックアップフォルダにコピーができました。

クレーマー
クレーマー

それじゃいつのバックアップかわからないじゃないか!

謝罪しろ!


いやー、必要なのは謝罪じゃなくて実現することじゃないですかねー。

つまり、次回はいつのバックアップなのかがわかるようにしていきます。


チャオ

Copied title and URL