表題の件で質問させてください。
現在ひな形となるExcelファイルをコピーし、システムの日付を付与して新たなファイルを作成しています。
例20181106.xlsx, 20181107.xlsx, 20181108.xlsxのように作成
同じ日にもう一枚ファイルを作成したい場合があるのですが
例20181108.xlsx, 20181108_2.xlsx, 20181108_3.xlsxのように番号を付けたい
そのままでは同じ日付のファイルに上書きをしてしまいます。
配置するべきフォルダ内のファイルのリストを取得し、一番最後の要素を取得して同じ日付が付いているかの確認をさせて条件分岐させれば実現できるかと考えたのですが、もしすでに同じ日付が付いているファイルがあった場合に連番を付ける、という処理をどのようにすれば実現できるか分からず悩んでいます。
以下の自分のコードでは同じ日付のファイルが2枚目までは対応できるのですが3枚目以降の場合が実現できずアドバイスを頂きたいです。
自分なりに考えたのでもっと分かりやすいやり方があると思うのでそういったアドバイスも頂けたら嬉しいです。
初歩的な質問で申し訳ありませんが宜しくお願い致します。
js
1const fs = require('fs'); 2const moment = require('moment'); 3 4var date = moment().format('YYYYMMDD') 5//ファイル連番用に使う? 6file_num = 1; 7 8// コピー元ファイル(ひな形になるファイル) 9const src = 'C:\Users\Desktop\test\test_excel.xlsx'; 10 11// フォルダ内のファイル名一覧 12const filenames = fs.readdirSync("C:\Users\Desktop\test\11月"); 13console.log(filenames); 14 15//最後の要素取得 16latest_filename = filenames[filenames.length - 1]; 17console.log(latest_filename); 18console.log(date); 19 20//日付が一致する部分があるか確認 21if(latest_filename.includes(date)){ 22 //コピー先ファイル 23 const dest = "C:\Users\Desktop\test\" + month + "月\" + date + "_" + file_num + ".xlsx"; 24 //ファイル作成 25 fs.copyFileSync(src, dest); 26 27}else{ 28 //コピー先ファイル 29 const dest = "C:\Users\Desktop\test\" + month + "月\" + date + "_" + file_num + ".xlsx"; 30 //ファイル作成 31 fs.copyFileSync(src, dest); 32} 33

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/11/09 01:07 編集
2018/11/09 04:07