[Mac M2 Pro 12CPU, MacOS Ventura 13.5, clang 14.0.3]
自製ChatGPTアプリに関する記事は3月以来5ヶ月ぶりです。記事にはしていませんが、これまで何度も更新を重ねグレードアップしています。
ChatGPTアプリでのやりとりはjsonファイルとして保存しています。大分ファイルがたまってきたため、年月フォルダ(今月の場合は”2308″)を自動作成して振り分けるMovJSボタンを実装しました。
ChatGPTにコードを書いてもらいました。一応コードはチェックして問題なさそうなのでビルド&実行したところ一発で成功しました。
実装完了までものの10分です。AIアシストでプログラミングすると生産性爆上がりです。
#include <iostream>
#include <filesystem>
#include <fstream>
namespace fs = std::filesystem;
void movJSONCB(Fl_Widget*, void*){
fs::path srcDir = "/ChatGPT";
// srcDirにあるjsonファイルのpathをリスト化する
std::vector<fs::path> jsonFiles;
for (const auto& entry : fs::directory_iterator(srcDir)) {
if (entry.path().extension() == ".json") {
jsonFiles.push_back(entry.path());
}
}
// ファイル名の先頭4文字のフォルダを作成する
for (const auto& jsonFile : jsonFiles) {
std::string folderName = jsonFile.filename().stem().string().substr(0, 4);
fs::path folderPath = srcDir / folderName;
// フォルダがすでに存在する場合は上書き作成しない
if (!fs::exists(folderPath)) {
fs::create_directory(folderPath);
}
// ファイルをそれぞれのフォルダに振り分ける
fs::path destinationPath = folderPath / jsonFile.filename();
fs::rename(jsonFile, destinationPath);
}
}