【GAS】ファイル作成と同時にファイルを好きなフォルダへ移動する
ファイルを移動するIDを自動取得する
Googleドライブ内のファイルを移動する場合については、下記の記事に記載してありますのでそちらを参考にしてください。
マイドライブにあるファイルIDをプログラムで取得しよう
先ほどの記事には、ファイルIDやフォルダIDの取得方法については、アドレスから取得する方法について記載してあります。しかし、一部自動化するという目的を果たしているものの、全て自動化ではありません。ここでは、
ファイル作成→id自動取得→ファイルをしていフォルダへ移動
という流れを自動ができるようにしていきます。
いつものように、リファレンスマニュアルからサンプルコードを少し改造して実行します。そこから、今回の目的を達成するプログラムコードへと改善していきます。
ポイント1:条件を満たしている間は繰り返す「While文」を使ってフォルダ内を検索
ポイント2:filesにファイルの情報を代入
ポイント3:事前に検索したい「プレゼン2」と比較
ポイント4:IDをログで出力
function myFunction() {
const fileName = "プレゼン2";
// Log the name of every file in the user's Drive.
var files = DriveApp.getFiles();
while (files.hasNext()) {//ポイント1
var file = files.next();//ポイント2
if(file.getName() == fileName){break;}//ポイント3
Logger.log(file.getName());
}
Logger.log(file.getId());//ポイント4
}
ファイルを新規作成してマイドライブから別のフォルダへ移動する
今回の目的は、上記のサンプルを少し改善して達成できそうです。しかし、マイドライブ内を全て検索したりプログラム処理としては余分な作業が多いように思えます。
ファイルは、作成と同時にidが割り振られます。それを取得すれば、検索する必要がありません。サンプルを作成していて気づいたので少し方向転換して下記のような流れでコードを作成していこうと思います。この方向でソースコードを作成してきます。
Goolgeアプリを作成 → id取得 → 指定フォルダへ移動
事前に準備
ファイルのidは、作成時に自動取得するので良いのですが、指定フォルダのidは、事前に用意する必要があります。ここは、どうしても自動化できない部分ですね。
フォルダのidは、作成したファイルを移動させていたいフォルダへ行き、下図のアドレスバーにある「folders/1-TGO***」の1-TGOの部分になります。
準備するもの(2つ)
・移動させたいフォルダのID
・作成するファイル名とアプリ(今回はスライド)
ソースコード
今回のソースコードは、Googleスライドを作成してフォルダーへ移動するというものになります。フォルダのIDは、御自分で指定してください。プログラムの解説は、特に必要な個所がないと思いますが、下記のコードが重要になります。
実行後は、下図になります。しっかりと移動しましたね。
//作成したファイルをfileidにidを代入
const fileid = DriveApp.getFileById(preso.getId());
function myFunction() {
//初期設定
const fileName = "プレゼン2";
const folderID = "1-TGO*****";
//Googleスライドを新規作成
preso = SlidesApp.create(fileName);
//作成したファイルをfileidにidを代入
const fileid = DriveApp.getFileById(preso.getId());
//Logger.log(fileid.getId());//開発のなごりで残す
//フォルダのIDを代入
let folder = DriveApp.getFolderById(folderID);
//移動処理
fileid.moveTo(folder);
}
まとめ
先のソースコードを活用すれば、ファイル作成からファイル移動まで自動化されたことになります。プログラムやってて良かったなぁって思う瞬間です。手動でやるよりよほど早く完成します。ぜひ一度試してみてください。
“【GAS】ファイル作成と同時にファイルを好きなフォルダへ移動する” に対して1件のコメントがあります。