


GASのファイル・フォルダの作成・コピーについてまとめました。
この記事でわかること!
- Google Apps Scriptを使ってファイル・フォルダを新規作成する方法がわかる。
- Google Apps Scriptを使ってファイル・フォルダをコピーする方法がわかる。
Google Apps Scriptでファイルを作成するには?
ファイルを新規作成するには?
Google apps script(GAS)でファイルを新規作成するには、DriveAppクラスのcreateFileメソッドを使います。
Google workspaceのアプリケーションファイルを新規作成するには?
Google Workspaceのファイルを新規作成する場合は、各Google Workspaceのクラスに用意されている新規作成メソッドを呼び出します。
Google Apps Scriptでファイル新規作成するサンプルスクリプト
Googleドライブにテキストファイルを新規作成する。
//テキストファイルを作成します。
function createTxtFile(){
DriveApp.createFile('テストテキストファイルだよ', 'ほげほげほげ', MimeType.PLAIN_TEXT);
}
GoogleドライブにHTMLファイルを新規作成する。
//HTMLファイルを作成します。
function createHTMLFile(){
DriveApp.createFile('テストhtmlだよ', '<h1>Hello, world!</h1>', MimeType.HTML);
}
GoogleドライブにGoogleドキュメントを新規作成する。(Google Document)
const folderId ="フォルダーIDを入力してください。"
//GoogleDocを新規作成する
function createGoogleDoc(){
//Googleドキュメントを新規作成します。
let doc = DocumentApp.create("GASで作ったドキュメントだよ。")
doc.getBody().appendParagraph("ほげほげほげ")
doc.saveAndClose()
//作成したGoogle Docmentはデフォルトではどのフォルダの配下でもないありません。
//管理上必要であれば任意のフォルダに移動させます。
let folder = DriveApp.getFolderById(folderId);
let file = DriveApp.getFileById(doc.getId())
file.moveTo(folder);
}


GoogleドライブにGoogleスプレッドシートを新規作成する。(Google Sheets)
const folderId ="フォルダーIDを入力してください。"
//GoogleSheetsを新規作成する
function createGoogleSheet(){
//Googleシートを新規作成します。
let sheet = SpreadsheetApp.create("GASで作成したスプレッドシートだよ")
sheet.getRange("A1").setValue("うんこ");
//作成したGoogle スプレッドシートはデフォルトではどのフォルダの配下でもないありません。
//管理上必要であれば任意のフォルダに移動させます。
let folder = DriveApp.getFolderById(folderId);
let file = DriveApp.getFileById(sheet.getId())
file.moveTo(folder);
}


GoogleドライブにGoogleスライドを新規作成する。(Google Slide)
const folderId ="フォルダーIDを入力してください。"
//Googleスライドを新規作成する
function createGoogleSlide(){
//Googleシートを新規作成します。
let slide = SlidesApp.create("GASで作成したスライドだよ");
slide.getSlides()[0].insertTextBox("ホゲ山ホゲ男");
slide.saveAndClose();
//作成したGoogle シートはデフォルトではどのフォルダの配下でもないありません。
//管理上必要であれば任意のフォルダに移動させます。
let folder = DriveApp.getFolderById(folderId);
let file = DriveApp.getFileById(slide.getId())
file.moveTo(folder);
}


GoogleドライブにGoogleフォームを新規作成する。(Google Forms)
const folderId ="フォルダーIDを入力してください。"
//Googleフォームを新規作成する
function createGoogleForms(){
//Googleシートを新規作成します。
let form = FormApp.create("GASで作成したフォームだよ");
form.setDescription("ダミーのフォームです。")
//作成したGoogle フォームはデフォルトではどのフォルダの配下でもないありません。
//管理上必要であれば任意のフォルダに移動させます。
let folder = DriveApp.getFolderById(folderId);
let file = DriveApp.getFileById(form.getId())
file.moveTo(folder);
}


Google Apps Scriptでファイルをコピーするには?



ファイルのコピーは、テンプレートとなるベースファイルを事前に準備しておいてそのファイルをもとにファイルを複製していくときなどにとても便利です。



ファイルをコピーするにはファイルクラスのmkcopyメソッドを使用します。
Google Apps Scriptでファイルをコピーするサンプルスクリプト。
トップディレクトリの中に「ファイル」をコピーする。
//特定のフォルダをトップディレクトリにコピー
function mkFileCopy() {
let file = DriveApp.getFileById(fileId);
Logger.log(file.getName() + " " + file.getMimeType())
file.makeCopy("新ファイル名")
}
特定のフォルダの中に「ファイル」をコピーする。
//特定のフォルダを宛先フォルダを指定してコピー
function mkFileCopy2() {
let file = DriveApp.getFileById(fileId);
let dstFolder = DriveApp.getFolderById(folderId);
Logger.log(file.getName() + " " + file.getMimeType())
file.makeCopy("新ファイル名", dstFolder)
}
Google Apps Scriptで「フォルダ」をコピーするには?



Googleドライブにはフォルダ単位のコピー機能がありません。なのでGASにもそういったメソッドはありません。



ですのでフォルダコピーするにはmkcopyメソッドで1ファイルずつコピーしていくことになります。
特定のフォルダの中にフォルダをコピーする。
Qiitaでコードサンプルを公開してくださっている方がいらっしゃいました。


ファイル名・フォルダ名に今日の日付を付けるには?
(工事中)
関連記事


まとめ



Google apps scriptでフォルダやファイルの作成・コピーについてまとめました。



このブログではRPA・ノーコードツール・VBA/GAS/Pythonを使った業務効率化などについて発信しています。
参考になりましたらブックマーク登録お願いします!
▲Google Apps Scriptの入門書として間違いのない一冊です。ノンプログラマーの方にもわかりやすく解説されています。V8ランライム対応版にアップデート済みため情報も新しいです。
▲こちらGoogle Apps Scriptの本ではないですが、Google Workspace(旧G Suite)を自動化したりアプリ化するには、Google AppSheetという選択肢もあります。Google AppSheetはノーコードでアプリを作成できます。
▲Google for Educationの使い方にとどまらず実際の運用ででてくる問題への対処方法などもかかれていて面白いです。教師の方達の共著なので現実的な内容となっています。