Googleドライブにファイルを作成する— createFile()
createFileは読んで字のごとくファイルを新規作成するメソッドです。
新規ファイルを作成しますので、Googleドライブに保存されている既存のファイルの新バージョンをアップロードすることはできません。
もし既存ファイルの新バージョンをアップロードする方法を調べてこの記事にたどり着いた方は下記の記事が参考になると思います。
本記事で取り上げるcreateFileは、DriveAppクラスのメソッドとFolderクラスのメソッド存在しています。
この2つの違いはなにか?というと、それは
具体的なファイル作成場所は次の通りです。
クラス名 | ファイル作成場所 |
---|---|
DriveAppクラス | マイドライブの直下に作成 |
Folderクラス | 事前に取得したフォルダの直下に作成 |
そのため、DriveAppクラスのcreateFileを使って任意のフォルダにファイルを作成したい場合は、moveToメソッドと併用する必要があります。
createFile以外でも上記と同じようにDriveAppクラスとFolderクラス同じような挙動をするメソッドに次のようなものがあります。
- createFolder
- getFiles
- getFolders
- searchFiles
- searchFolders
主にフォルダやファイルを取得したり作成したりするものが同じような使い方をすることができます。詳しい使い方は下記の関連記事を読んでみてください。
新規ファイルを作成するコード
ここからは本題のGoogleドライブ上に新規ファイルを作成する方法をご紹介します。
引数の異なる3つのバリエーションがありますが、それぞれご紹介していきます。
引数に入れる値
- 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ドライブのマイドライブフォルダを覗いてみましょう。
このように、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 = マイドライブに新規作成したフォルダ
上記サンプルスクリプトを記載したスクリプトがありますので、アクセスして関数名を選択後に▶ボタンをクリックしてプログラムを実行してみましょう。アクセスができない方は、ブラウザのシークレットモードでアクセスしてみてください。
プログラムの実行が完了したらマイドライブフォルダを覗いてみましょう。
最初に紹介した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 = マイドライブに新規作成したフォルダ
上記サンプルスクリプトを記載したスクリプトがありますので、アクセスして関数名を選択後に▶ボタンをクリックしてプログラムを実行してみましょう。アクセスができない方は、ブラウザのシークレットモードでアクセスしてみてください。
プログラムの実行が完了したらマイドライブフォルダを覗いてみましょう。
こちらもテキストベースでファイルを作成する方法ではありますが、ファイルの種類を指定することができる点で、2つ目のメソッドとは異なります。作成できるファイルサイズの上限は10MBまでとなります。
Googleドライブに保存済みのファイルのバージョン管理をする方法
いまご紹介した3つのメソッドは冒頭でお伝えしたようにファイルを作成する事ができるメソッドです。
既存ファイルの新バージョンをアップロードしたい場合は別のやり方になりますので、下記の記事を参考にしてください。
まとめ
今回はGoogle Apps Scriptを使ってGoogleドライブに新しいファイルを作成する方法をご紹介しました。
使い方はシンプルですので少し使ってみれば簡単に使い方を身につけることができると思います。
ただし、DriveAppのメソッドだけでは、バージョン管理を含めたシステム構築をすることができませんので、必要に応じてDrive APIを活用して機能を拡張する必要があることは頭に入れておいたほうが良いかもしれません。