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

icon_for_DriveApp_createFile
URLをコピーする
URLをコピーしました!
目次

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)

引数に入れる値

  • blob(Blobデータ) — 保存するBlobデータ
  • name(文字列) — 新規ファイルのファイル名
  • content(文字列) — 新規ファイルの内容
  • mimeType(文字列) — 新規ファイルのMIMEタイプ

関連するメソッド

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を活用して機能を拡張する必要があることは頭に入れておいたほうが良いかもしれません。

icon_for_DriveApp_createFile

この記事が気に入ったら
いいね または フォローしてね!

よかったらシェアしてね!
URLをコピーする
URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

初心者でもわかるGoogle Apps Script活用のススメの管理人。
業務でラクをするという邪な目的のためにプログラムを独学で勉強し始め、初心者向けのGoogle Apps Scriptの使い方サイトを運営するに至る。
ラクをするためにはどんな苦労も厭わないという考えから、手っ取り早くスキルアップするためにCrowdWorksやLancersなどで仕事を受注し始め、過去にはTopClass PRO Crowd workerに認定された経験を持つ。
現在では、業務効率化システムの開発を行う会社の代表を務める。

コメント

コメントする

目次
トップへ
目次
閉じる