GASを書いているときにハマったことを書いていきます
見つけたら記載していくので都度、更新していきます。
Google Drive
メールの添付ファイルを名前を付け替えてドライブに保存したかった
FolderクラスのcreateFile( )を見ると
同じ記載のメンバーで引数が違うものがありました。
メンバー | 説明 | |
---|---|---|
(1) | createFile(blob) | blob用(同時に名前は指定できない) |
(2) | createFile(name,content[,mimeType]) | 文字列用 |
blob?
blobを見たことがなかったので、なんとなく(2)かなぁと思ったのですが、結果的には(1)でした。
blobとはファイル変換のために利用されるクラスのようです。
ちなみに(2)でファイル名を指定して添付ファイルをコンテンツとして作成してみると、ドライブから開く際に拡張子の形式に変換されずにエラーがおきました。
この(2)はテキストファイルの作成に使うようです。
ドライブのフォルダ内に名前と内容を同時に指定してファイルを作成できるのはテキストのみです。
(1)を使ってフォルダ内に添付ファイルを保存するには以下になります。
まずフォルダに保存して、それから名前を変更するので、3行必要になります。
添付ファイルを保存する.gs
var store_folder = DriveApp.getFolderById('フォルダIDを入れる');
store_folder.createFile(attach[0]);
/*名前を付け替えたい場合は以下も必要*/
var file = store_folder.getFilesByName(attach[0].getName());
file.next().setName('新しい名前.拡張子');