初心者でもわかるGoogle Apps Script活用のススメ

【コピペで使える】GASでGoogleドライブにファイルを作成する

Googleドライブにファイルを作成する— createFile()

createFileは読んで字のごとくファイルを新規作成するメソッドです。

新規ファイルを作成しますので、Googleドライブに保存されている既存のファイルの新バージョンをアップロードすることはできません

もし既存ファイルの新バージョンをアップロードする方法を調べてこの記事にたどり着いた方は下記の記事が参考になると思います。

本記事で取り上げるcreateFileは、DriveAppクラスのメソッドFolderクラスのメソッド存在しています。

この2つの違いはなにか?というと、それは

ファイルの作成される場所が異なります

具体的なファイル作成場所は次の通りです。

クラス名ファイル作成場所
DriveAppクラスマイドライブの直下に作成
Folderクラス事前に取得したフォルダの直下に作成

そのため、DriveAppクラスのcreateFileを使って任意のフォルダにファイルを作成したい場合は、moveToメソッドと併用する必要があります

createFile以外でも上記と同じようにDriveAppクラスとFolderクラス同じような挙動をするメソッドに次のようなものがあります。

  • createFolder
  • getFiles
  • getFolders
  • searchFiles
  • searchFolders

主にフォルダやファイルを取得したり作成したりするものが同じような使い方をすることができます。詳しい使い方は下記の関連記事を読んでみてください。

これらもDriveAppクラスとFolderクラスどちらにも用意されているメソッドですが、違いは作成先のフォルダがどこになるのかという違いで2つのメソッドが用意されているのです。

新規ファイルを作成するコード

ここからは本題のGoogleドライブ上に新規ファイルを作成する方法をご紹介します。

引数の異なる3つのバリエーションがありますが、それぞれご紹介していきます。

  1. createFile(blob)
  2. createFile(name, content)
  3. createFile(name, content, mimeType)

引数に入れる値

関連するメソッド

createFile(blob)サンプルコード

//マイドライブに新規ファイルを作成するコード
function sampleCodeForCreateFileInMyDrive1() {
  var url = "https://for-dummies.net/gas-noobs/wp-content/uploads/2019/12/DriveApp_createFile.png";
  var response = UrlFetchApp.fetch(url);
  var blob = response.getBlob();
  var file = DriveApp.createFile(blob);
  file.setName("初心者でもわかるGoogle Apps Script活用のススメのサンプル画像.png"); //任意の名前をつけるときはファイル作成後にsetNameで設定します
  //var fileId = file.getId(); //新規ファイルのIDを取得する
}

//任意のフォルダに新規ファイルを作成するコード
function sampleCodeForCreateFileInASpecificFolder1() {
  var url = "https://for-dummies.net/gas-noobs/wp-content/uploads/2019/12/DriveApp_createFile.png";
  var response = UrlFetchApp.fetch(url);
  var blob = response.getBlob();
  var folder = DriveApp.createFolder("【GAS】サンプル画像保存フォルダ");
  var file = folder.createFile(blob);
  file.setName("初心者でもわかるGoogle Apps Script活用のススメのサンプル画像.png"); //任意の名前をつけるときはファイル作成後にsetNameで設定します
  //var fileId = file.getId(); //新規ファイルのIDを取得する
}

変数の説明

url = Blobデータを取得するサンプル画像保存先URL(当ブログの画像URL)
response = URLにリクエストを送った際のレスポンス
blob = レスポンスデータをBlobデータに変換
file = Blobデータをドライブに保存したファイル
folder = マイドライブに新規作成したフォルダ

上記サンプルスクリプトを記載したスクリプトがありますので、アクセスして関数名を選択後に▶ボタンをクリックしてプログラムを実行してみましょう。アクセスができない方は、ブラウザのシークレットモードでアクセスしてみてください。


プログラムの実行が完了したら自分のGoogleドライブのマイドライブフォルダを覗いてみましょう。

sampleCodeForCreateFileInMyDrive1を実行をすると、当ブログの画像が『初心者でもわかるGoogle Apps Script活用のススメのサンプル画像.png』という名前でマイドライブに保存されているのが確認できると思います。

sampleCodeForCreateFileInASpecificFolder1を実行をすると、マイドライブ直下に『【GAS】サンプル画像保存フォルダ』というフォルダが生成され、その中に『初心者でもわかるGoogle Apps Script活用のススメのサンプル画像.png』というファイル名の画像ファイルが保存されていると思います。

このように、BlobデータをGoogleドライブに保存する方法がcreateFile(blob)の使い方になります。

ちなみに、作成するファイルの名前に拡張子をつけなくてもGoogleドライブではファイルが認識されるので、必ずしも付ける必要はないのですが、もしクライアントアプリでパソコンのローカルディスクにファイルを同期している場合、拡張子が設定されていない場合はファイルが認識できない場合がありますので、つけておいたほうが良いですよ。

createFile(name, content)サンプルコード

//マイドライブに新規ファイルを作成するコード
function sampleCodeForCreateFileInMyDrive2() {
  var name = "createFile(name, content)サンプルテキスト.txt";
  var content = "Hello, World!";
  var file = DriveApp.createFile(name, content);
  //var fileId = file.getId(); 新規ファイルのIDを取得する
}

//任意のフォルダに新規ファイルを作成するコード
function sampleCodeForCreateFileInASpecificFolder2() {
  var folder = DriveApp.createFolder("【GAS】createFile(name, content)サンプルテキスト保存フォルダ");
  var name = "createFile(name, content)サンプルテキスト.txt";
  var content = "Hello, World!";
  var file = folder.createFile(name, content);
  //var fileId = file.getId(); 新規ファイルのIDを取得する
}

変数の説明

name = ファイル名を指定
content = ファイルの内容を指定
file = ドライブに作成した新規ファイル
folder = マイドライブに新規作成したフォルダ

上記サンプルスクリプトを記載したスクリプトがありますので、アクセスして関数名を選択後に▶ボタンをクリックしてプログラムを実行してみましょう。アクセスができない方は、ブラウザのシークレットモードでアクセスしてみてください。

プログラムの実行が完了したらマイドライブフォルダを覗いてみましょう。

sampleCodeForCreateFileInMyDrive2を実行をすると、『createFile(name, content)サンプルテキスト.txt』という名前でマイドライブにテキストデータが保存されているのが確認できると思います。

sampleCodeForCreateFileInASpecificFolder2を実行をすると、マイドライブ直下に『【GAS】createFile(name, content)サンプルテキスト保存フォルダ』というフォルダが生成され、その中に『createFile(name, content)サンプルテキスト.txt』というファイル名のテキストデータが保存されていると思います。

最初に紹介したBlobデータと違い、ファイル名を指定してファイルを作成する方法がcreateFile(name, content)の使い方になります。作成できるファイルサイズの上限は50MBまでとなります。

createFile(name, content, mimeType)サンプルコード

//マイドライブに新規ファイルを作成するコード
function sampleCodeForCreateFileInMyDrive3() {
  var name = "createFile(name, content, mimeType)サンプルファイル.html";
  var content = "Hello, World!";
  var mimeType = MimeType.HTML;
  var file = DriveApp.createFile(name, content, mimeType);
  //var fileId = file.getId(); 新規ファイルのIDを取得する
}

//任意のフォルダに新規ファイルを作成するコード
function sampleCodeForCreateFileInASpecificFolder3() {
  var folder = DriveApp.createFolder("【GAS】createFile(name, content, mimeType)サンプルHTMLフォルダ");
  var name = "createFile(name, content, mimeType)サンプルテキスト.html";
  var content = "Hello, World!";
  var mimeType = MimeType.HTML;
  var file = folder.createFile(name, content, mimeType);
  //var fileId = file.getId(); 新規ファイルのIDを取得する
}

変数の説明

name = ファイル名を指定
content = ファイルの内容を指定
mimeType = MIMEタイプを指定
file = ドライブに作成した新規ファイル
folder = マイドライブに新規作成したフォルダ

上記サンプルスクリプトを記載したスクリプトがありますので、アクセスして関数名を選択後に▶ボタンをクリックしてプログラムを実行してみましょう。アクセスができない方は、ブラウザのシークレットモードでアクセスしてみてください。

プログラムの実行が完了したらマイドライブフォルダを覗いてみましょう。

sampleCodeForCreateFileInMyDrive3を実行をすると、『createFile(name, content, mimeType)サンプルファイル.html』という名前でマイドライブにHTMLファイルが保存されているのが確認できると思います。

sampleCodeForCreateFileInASpecificFolder3を実行をすると、マイドライブ直下に『【GAS】createFile(name, content, mimeType)サンプルHTMLフォルダ』というフォルダが生成され、その中に『createFile(name, content, mimeType)サンプルファイル.html』というファイル名のHTMLファイルが保存されていると思います。

こちらもテキストベースでファイルを作成する方法ではありますが、ファイルの種類を指定することができる点で、2つ目のメソッドとは異なります。作成できるファイルサイズの上限は10MBまでとなります。

Googleドライブに保存済みのファイルのバージョン管理をする方法

いまご紹介した3つのメソッドは冒頭でお伝えしたようにファイルを作成する事ができるメソッドです。

既存ファイルの新バージョンをアップロードしたい場合は別のやり方になりますので、下記の記事を参考にしてください。

まとめ

今回はGoogle Apps Scriptを使ってGoogleドライブに新しいファイルを作成する方法をご紹介しました。
使い方はシンプルですので少し使ってみれば簡単に使い方を身につけることができると思います。
ただし、DriveAppのメソッドだけでは、バージョン管理を含めたシステム構築をすることができませんので、必要に応じてDrive APIを活用して機能を拡張する必要があることは頭に入れておいたほうが良いかもしれません。

Exit mobile version