複数のGoogleドキュメントの文章を取得してtxtファイルに変換し、指定フォルダ内に保存する処理を行っています。
その流れの中でフォルダ内にある同じ名前のファイルについて重複しているのであればalertのYES_NOで条件処理を行おうと思っていますが、手詰まってしまいました。
色々な方法を探すために検索しましたが、ヒントを得ることができず皆様の知識をお借りしたくご教授いただけないでしょうか。
前置きが長くなり申し訳ございませんが、ここから本題です。
新規txtファイルを作成しつつ、重複ファイルがあれば上書きまたは別名で保存したいのですが、条件処理を行うことで新規txtファイルも作成されてしまいます。(この処理は当たり前だとわかっています。)
重複ファイルがなければ、新規作成。
重複ファイルがあれば分岐処理する方法を教えていただけないでしょうか。
//グーグルドキュメントの中身が空でなければ処理を開始 if(!document_data == ''){ //保存先フォルダ内のファイルを一括取得 var files = folder_id.getFiles(); //配列の準備 var arr_name = []; var arr_id = []; //保存対象のグーグルドキュメントのファイル名を変数へ var searchTittle = taisho_file_name; //フォルダ内のファイル名とIDを洗い出し for(var i = 0; files.hasNext(); i++) { //ファイルの取得 var file = files.next(); //ファイル名とファイルIDの取得 arr_name[i] = file.getName(); arr_id[i] = file.getId(); arr_id[i] = DriveApp.getFileById(arr_id[i]); if(searchTittle == arr_name[i]){ //ファイル名と拡張子(.txt)を分離し、ファイル名だけを取得 var TittleLen = searchTittle.length; var Tittle = searchTittle.slice(0,TittleLen -4); //アラート文 var ui = DocumentApp.getUi(); var result = ui.alert( searchTittle + 'と同じ名前のファイルがあります。', '上書き : 「はい」' + "\n" + "別名で保存 : 「いいえ」" + "\n" +, ui.ButtonSet.YES_NO); //ボタン操作処理 if (result == ui.Button.YES) { // 上書き処理 var txt_taisho = Utilities.newBlob("", MimeType.PLAIN_TEXT, "ファイル名").setDataFromString(doc_taisho, "utf-8"); arr_id[i].setContent(txt_taisho); ui.alert('上書きしました。'); break; }else if(result == ui.Button.NO) { // 別名で保存 Tittle = Tittle + "(1)" + ".txt"; var txt_taisho = Utilities.newBlob("", MimeType.PLAIN_TEXT, Tittle).setDataFromString(doc_taisho, "utf-8"); taisho_id.createFile(txt_taisho); ui.alert(Tittle + 'の名前で保存しました。'); break; } } var txt_taisho = Utilities.newBlob("", MimeType.PLAIN_TEXT, "ファイル名").setDataFromString(doc_taisho, "utf-8"); taisho_id.createFile(txt_taisho); }
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。