【GAS】Googleドライブのファイルを操作する

notepc-on-desk プログラミング

Googleアカウントがあれば、写真、動画、ファイルなどをクラウドに保存できるGoogleドライブ。

Google Apps Scriptを使えばGoogleドライブ内のファイルやフォルダを作成、検索、変更することができます。

Google Apps Script(GAS)は、Googleが提供するサービスの1つです。JavaScriptベースのスクリプト言語で、Googleアカウントを持っていれば無料で使えます。

今回は、GASを使ってフォルダやファイルを操作する方法について説明します。

GASを作成する

Googleドライブを変更するためのGASファイルを作成します。

Googleドライブを開き、「新規」→「その他」→「Google Apps Script」をクリックします。

GASを開く

GASのスクリプトエディタが開きます。右下の「function myFunction() {}」という部分にスクリプトを書いていきます。

open-script-editer

フォルダの操作

作成

フォルダを作成するには「createFolder(name)」メソッドを使います。「name」は、作成するフォルダ名です。

const createFolder = () => {
  //ルートフォルダにフォルダを作成
  const folder = DriveApp.createFolder("testFolder");

  //先ほど作成したtestFolderの下にフォルダを作成
  folder.createFolder("testFolder2");

  //任意のフォルダの下にフォルダの作成
  const selectFolder = DriveApp.getFolderById("任意のフォルダのID");
  selectFolder.createFolder("testFolder3");
};

初めてスクリプトを実行するときは、承認が必要になります。

承認方法
  1. 「承認が必要です」というウィンドウで、「権限を確認」をクリック
  2. Googleアカウントでログイン
  3. 「このアプリはGoogleで確認されていません」の左下の詳細をクリック
  4. 「(GASの名前)(安全ではないページ)に移動」をクリック→「許可」

ルートフォルダにフォルダを作成する場合は「DriveApp.createFolder()」メソッドを使います。作成したフォルダについて何かしたい場合は、戻り値として作成したフォルダが返ってくるので変数に格納して使います。

//これだけでもフォルダ作成できる
DriveApp.createFolder("フォルダ");

//作成したフォルダを変数に格納
const folder = DriveApp.createFolder("フォルダ1");
console.log(folder.getName());  //作成したフォルダの名前「フォルダ1」がログに出力される

任意のフォルダにフォルダを作成する場合は、DriveAppの「getFolderById()」メソッドで任意のフォルダを取得して「createFolder()」メソッドを使います。

//任意のフォルダの下にフォルダの作成
const selectFolder = DriveApp.getFolderById("任意のフォルダのID");
selectFolder.createFolder("testFolder3");

上のスクリプト2行目の「任意のフォルダのID」の部分には、Googleドライブでフォルダを開いたときにURLに表示されている文字列を貼り付けます。

getid-folderid

移動

フォルダを移動するには「moveTo(destination)」メソッドを使います。「destination」は移動先のフォルダです。

以下のスクリプトを実行すれば、3行目で指定したフォルダが6行目で実行したフォルダに移動します。

const moveFolder = () => {
  //移動させるフォルダ
  const selectFolder = DriveApp.getFolderById("移動させるフォルダID");

  //移動先のフォルダ
  const destinationFolder = DriveApp.getFolderById("移動先のフォルダID");

 //フォルダの移動
  selectFolder.moveTo(destinationFolder);
};

名前の変更

フォルダの名前を変更するには「setName(name)」メソッドを使います。「name」は変更するフォルダの名前です。

以下のスクリプトを実行すればフォルダの名前が「test」になります。

const renameFolder = () => {
  //名前を変更するフォルダ
  const folder = DriveApp.getFolderById("変更するフォルダID");

  //名前の変更
  folder.setName("test");
};

削除

フォルダを削除(ゴミ箱に移動)するには「setTrashed(true)」メソッドを使います。

以下のスクリプトを実行すれば、3行目で指定したフォルダがゴミ箱に移動します。

const deleteFolder = () => {
  //削除するフォルダ
  const folder = DriveApp.getFolderById("削除するフォルダID");

  //フォルダの削除
  folder.setTrashed(true);
};

ファイルの操作

コピー

ファイルをコピーするには「makeCopy()」メソッドを使います。「makeCopy()」メソッドは、以下の4つの使い方ができます。

  • makeCopy():ファイルをコピーする
  • makeCopy(destination):destinationのフォルダにファイルをコピーする
  • makeCopy(name):nameのファイル名でファイルをコピーする
  • makeCopy(name,destination):destinationのフォルダに、nameのファイル名でファイルをコピーする

以下のスクリプトを実行すれば、3行目で指定したファイルを6行目で実行したフォルダに「コピーされたファイル」という名前でコピーします。

const copyFile = () => {
  //コピーするファイル
  const file = DriveApp.getFileById("コピーするファイルID");

 //コピー先のフォルダ
  const destinationFolder = DriveApp.getFolderById("コピー先のフォルダID");

  //ファイルのコピー
  file.makeCopy("コピーされたファイル", destinationFolder);
};

移動

ファイルを移動するには「moveTo(destination)」メソッドを使います。「destination」は移動先のフォルダです。

以下のスクリプトを実行すれば、3行目で指定したファイルが6行目で実行したフォルダに移動します。

const moveFile = () => {
  //移動するファイル
  const file = DriveApp.getFileById("移動するファイルID");

 //移動先のフォルダ
  const destinationFolder = DriveApp.getFolderById("移動先のフォルダID");

  //ファイルの移動
  file.moveTo(destinationFolder);
};

名前の変更

ファイルの名前を変更するには「setName(name)」メソッドを使います。「name」は変更するファイルの名前です。

以下のスクリプトを実行すればファイルの名前が「名前変更」になります。

const renameFile = () => {
  //名前の変更するファイル
  const file = DriveApp.getFileById("名前を変更するファイルID");

  //名前の変更
  file.setName("名前変更");
};

削除

ファイルを削除(ゴミ箱に移動)するには「setTrashed(true)」メソッドを使います。

以下のスクリプトを実行すれば、3行目で指定したファイルがゴミ箱に移動します。

const deleteFile = () => {
  //削除するファイル
  const file = DriveApp.getFileById("削除するファイルID");

  //ファイルの削除
  file.setTrashed(true);
};

Googleドライブのファイルの取得関係については以下の記事を参考にしてください。

GASを使えば、LINEと連携したアプリを作ることもできます。

参考サイト

Google Apps Script DriveService -Google Developers-

タイトルとURLをコピーしました