Google Drive APIによるファイル管理 (4/5)
作成:2013-05-26 10:56
更新:2013-05-26 10:56
更新:2013-05-26 10:56
■ファイル/フォルダのコピー/移動/削除
Googleドライブにあるファイルやフォルダのコピー/移動/削除といった操作も、もちろんスクリプトで行うことができます。これらについて整理しておきましょう。
・ファイル/フォルダのコピー
ファイル/フォルダのコピーは、コピーするファイルやフォルダのオブジェクト(File、Folder)内の「makeCopy」メソッドを呼び出します。これにより、そのオブジェクトの示すファイルやフォルダが複製されます。引数に名前を指定することで、コピーしたファイル/フォルダの名前を設定できます。
・ファイル/フォルダの追加
・ファイル/フォルダをフォルダから取り除く
「ファイル/フォルダの移動」を行うときには、この「add~」と「remove~」をセットで使います。つまり、元あったフォルダからremoveし、移動先のフォルダにaddすることで、その項目を移動させることができる、というわけです。
・ファイル/フォルダをゴミ箱に移動する
では、これも簡単な利用例を挙げておきましょう。これは表計算ページで入力ダイアログを使って住所や地名などを入力すると、その場所の地図をイメージファイルとして作成し、「○○のフォルダ」というフォルダに格納するサンプルです。
なお、ファイルをcreateFileすると、Googleドライブのルートに作成されますが、ここではそのルートから「○○のフォルダ」に移動するのに、指定のフォルダにaddFileしてからルートのフォルダから取り除く、という作業をしています。
この「ルートのフォルダ」を指定するのに、DriveAppの「getRootFolder」というメソッドを使っています。これはルートを示すFolderオブジェクトを返すメソッドです。あわせて覚えておくと良いでしょう。
・ファイル/フォルダのコピー
《File/Folder》.makeCopy();
《File/Folder》.makeCopy( 名前 );
ファイル/フォルダのコピーは、コピーするファイルやフォルダのオブジェクト(File、Folder)内の「makeCopy」メソッドを呼び出します。これにより、そのオブジェクトの示すファイルやフォルダが複製されます。引数に名前を指定することで、コピーしたファイル/フォルダの名前を設定できます。
・ファイル/フォルダの追加
《Folder》.addFile( Fileオブジェクト );《Folder》の示すフォルダの中に、引数で指定したファイルやフォルダを追加します。ただし、これはそこに「移動する」わけではありません。単にそのフォルダの要素として表示されるようになるだけです。もとあったフォルダにもそのまま表示されます。Googleドライブでは、ファイルやフォルダは複数の場所に配置することができる、ということを忘れないでください。
《Folder》.addFolder( Folderオブジェクト );
・ファイル/フォルダをフォルダから取り除く
《Folder》.removeFile( Fileオブジェクト );《Folder》の示すフォルダの中から、引数で指定したファイルやフォルダを取り除きます。これは「削除」ではありません。そのフォルダの要素からはずされる、というだけで、ファイルやフォルダそのものは削除されません。
《Folder》.removeFolder( Folderオブジェクト );
「ファイル/フォルダの移動」を行うときには、この「add~」と「remove~」をセットで使います。つまり、元あったフォルダからremoveし、移動先のフォルダにaddすることで、その項目を移動させることができる、というわけです。
・ファイル/フォルダをゴミ箱に移動する
《File/Folder》.setTrashed( 真偽値 );ファイルには「ゴミ箱にあるかどうかを示すプロパティ」が用意されています。「isTrashed」でその状態を知ることもできますし、「setTrashed」で状態を変更することもできます。このsetTrashedで引数にtrueを指定すれば、その項目をゴミ箱に移動することができます。ファイルやフォルダの「削除」は、これを利用してください。
では、これも簡単な利用例を挙げておきましょう。これは表計算ページで入力ダイアログを使って住所や地名などを入力すると、その場所の地図をイメージファイルとして作成し、「○○のフォルダ」というフォルダに格納するサンプルです。
なお、ファイルをcreateFileすると、Googleドライブのルートに作成されますが、ここではそのルートから「○○のフォルダ」に移動するのに、指定のフォルダにaddFileしてからルートのフォルダから取り除く、という作業をしています。
この「ルートのフォルダ」を指定するのに、DriveAppの「getRootFolder」というメソッドを使っています。これはルートを示すFolderオブジェクトを返すメソッドです。あわせて覚えておくと良いでしょう。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
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プログラミング入門」に戻る