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

Google Drive APIによるファイル管理 (4/5)

作成:2013-05-26 10:56
更新:2013-05-26 10:56

■ファイル/フォルダのコピー/移動/削除

Googleドライブにあるファイルやフォルダのコピー/移動/削除といった操作も、もちろんスクリプトで行うことができます。これらについて整理しておきましょう。


・ファイル/フォルダのコピー
《File/Folder》.makeCopy();
《File/Folder》.makeCopy( 名前 );

ファイル/フォルダのコピーは、コピーするファイルやフォルダのオブジェクト(FileFolder)内の「makeCopy」メソッドを呼び出します。これにより、そのオブジェクトの示すファイルやフォルダが複製されます。引数に名前を指定することで、コピーしたファイル/フォルダの名前を設定できます。


・ファイル/フォルダの追加
《Folder》.addFile( Fileオブジェクト );
《Folder》.addFolder( Folderオブジェクト );
《Folder》の示すフォルダの中に、引数で指定したファイルやフォルダを追加します。ただし、これはそこに「移動する」わけではありません。単にそのフォルダの要素として表示されるようになるだけです。もとあったフォルダにもそのまま表示されます。Googleドライブでは、ファイルやフォルダは複数の場所に配置することができる、ということを忘れないでください。


・ファイル/フォルダをフォルダから取り除く
《Folder》.removeFile( Fileオブジェクト );
《Folder》.removeFolder( Folderオブジェクト );
《Folder》の示すフォルダの中から、引数で指定したファイルやフォルダを取り除きます。これは「削除」ではありません。そのフォルダの要素からはずされる、というだけで、ファイルやフォルダそのものは削除されません。

「ファイル/フォルダの移動」を行うときには、この「add~」と「remove~」をセットで使います。つまり、元あったフォルダからremoveし、移動先のフォルダにaddすることで、その項目を移動させることができる、というわけです。


・ファイル/フォルダをゴミ箱に移動する
《File/Folder》.setTrashed( 真偽値 );
ファイルには「ゴミ箱にあるかどうかを示すプロパティ」が用意されています。「isTrashed」でその状態を知ることもできますし、「setTrashed」で状態を変更することもできます。このsetTrashedで引数にtrueを指定すれば、その項目をゴミ箱に移動することができます。ファイルやフォルダの「削除」は、これを利用してください。


では、これも簡単な利用例を挙げておきましょう。これは表計算ページで入力ダイアログを使って住所や地名などを入力すると、その場所の地図をイメージファイルとして作成し、「○○のフォルダ」というフォルダに格納するサンプルです。

なお、ファイルをcreateFileすると、Googleドライブのルートに作成されますが、ここではそのルートから「○○のフォルダ」に移動するのに、指定のフォルダにaddFileしてからルートのフォルダから取り除く、という作業をしています。

この「ルートのフォルダ」を指定するのに、DriveAppの「getRootFolder」というメソッドを使っています。これはルートを示すFolderオブジェクトを返すメソッドです。あわせて覚えておくと良いでしょう。

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

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

●プログラム・リスト●

function myFunction(){
  var sheet = SpreadsheetApp.getActiveSheet();
  var address = Browser.inputBox("address:");
  var blob = Maps.newStaticMap().setCenter(address).getBlob();
  var folder = DriveApp.createFolder(address + "のフォルダ");
  var file = DriveApp.createFile(blob);
  folder.addFile(file);
  DriveApp.getRootFolder().removeFile(file);
}

※関連コンテンツ

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