前提・実現したいこと
Gasを使って
「条件に一致した添付ファイルを、
自動抽出&自動で指定のフォルダにバックアップ」
という機能を実現したいと思います。
その場合、
「すでにフォルダ内に存在しているファイルを、
重複でバックアップとらないようにする」という風にしておきたいです。
発生している問題・エラーメッセージ
【◯】エラーメッセージ自体は特に発生していません。
【◯】条件抽出、自動バックアップといった、
基本的な機能も一応動作できています。
【☓】しかしながら、
「重複バックアップしない」という機能は上手く動作しません。
(同名ファイル存在しているにも関わらず、
バックアップされてどんどん保存されていきます。)
該当のソースコード
1function fetchFile(){ 2 const FOLDER_ID = 'ドライブID'; 3 const SEARCH_TERM = '検索条件'; 4 const folder = DriveApp.getFolderById(FOLDER_ID); 5 const files = folder.getFiles(); 6 const threads = GmailApp.search(SEARCH_TERM, 0, 500); 7 const messages = GmailApp.getMessagesForThreads(threads); 8 for(const thread of messages){ 9 for(const message of thread){ 10 const attachments = message.getAttachments(); 11 for(const attachment of attachments){ 12 let flag = true; 13 14 while (files.hasNext()) { 15 let fileName = files.next().getName(); 16 if ( fileName === attachment.getName() ) { flag = false } 17 } 18 if( flag ) { folder.createFile (attachment) } 19 } 20 } 21 } 22}
試したこと
既存ファイル.getFilesName()!== 新たに取得したいファイル.getName()
など、数パターンほど異なる条件判定方法を試しましたが、
いずれも上手く動作しませんでした。
補足情報(FW/ツールのバージョンなど)
最新のGoogleAppsScriptV8記述によって作成しています。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/08/26 13:00