libro
www.tuyano.com
初心者のためのGoogle Apps Scriptプログラミング入門

Googleドキュメントのファイル管理 (4/5)

作成:2011-08-15 10:55
更新:2011-11-04 17:08

■ファイル/フォルダの作成と組み込み

既にあるファイルやフォルダを取得し操作するのはだいたいわかりました。では、新しいファイルやフォルダを作成するにはどうすれば良いのでしょうか。

こうした「ファイル・フォルダの作成」に関する機能も、DocsListオブジェクトの中に用意されています。これらのメソッドを呼び出して新しいオブジェクトを作成できます。

・フォルダを作成する
変数 =DocsList.createFolder( 名前 );
・ファイルを作成する
変数 = DocsList.createFile( 名前, コンテンツデータ );
変数 = DocsList.createFile(《BlobSource》);

・ファイルをコピーする
変数 =《File》.copy(《File》);

・ゴミ箱に入れる
《File/Folder》.setTrashed( 真偽値 );

フォルダは名前を指定するだけで作れますが、ファイルはそこに保管するデータが必要です。またBlobSourceというバイナリデータを扱うオブジェクトを使い、バイナリデータのファイルを作成することもできます。

スプレッドシートやドキュメントのファイルは、既にそれぞれのドキュメントを作成するところで、Documentを作成する方法について触れていますので、あまりDocsListからファイルを作るやり方でこの種のドキュメントを作ることはないかも知れません。
■DocumentからFileを得る
では、スプレッドシートやドキュメントなどで作成したDocumentDocsListFileとして扱うためにはどうすればよいのでしょうか。これには、「ID」を利用します。
[ID値] =《Document》.getId();
変数 = DocsList.getFileById( [ID値] );
このように、DocumentからgetIdでIDを取得し、それを引数にしてDocsList.getFileByIdを呼び出すことで、DocuentFileを得ることができます。

では、簡単な例として、下のリスト欄にサンプルを挙げておきましょう。実行すると、「新しいファイル」というファイルを作り、それを新たに作った「新しいフォルダ」の中に入れます。2つ関数がありますが、いずれも同じものです。1つ目はDocsList.createFileを使い、2つ目はDocumentApp.createDocumentを作成し、それからFileを取得しています。

実際に両方を比べてみると、DocsList.createFileで作成したFileは、ドキュメントの種類が設定されていないため、Googleドキュメントで開いて編集することができないことがわかるでしょう。ただし、ダウンロードすると、ちゃんとサンプルのテキストが書かれたテキストファイルとして保存されることがわかります。現時点で、DocsList.createFileしたFileのタイプを設定する機能がないため、作ったファイルをGoogleドキュメントのファイルとして編集できるようにするのは難しそうです。今後のバージョンアップに期待しましょう。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

function addToFolder() {
  var file = DocsList.createFile("新しいファイル","これはテストです。");
  var folder = DocsList.createFolder("新しいフォルダ");
  file.addToFolder(folder);
}

function addToFolder() {
  var doc = DocumentApp.create("新しいファイル");
  var folder = DocsList.createFolder("新しいフォルダ");
  var id = doc.getId();
  var file = DocsList.getFileById(id);
  file.addToFolder(folder);
}

※関連コンテンツ

「初心者のためのGoogle Apps Scriptプログラミング入門」に戻る