[C++] 302 FLTK : ChatGPTアプリの製作 その31 ChatGPTを使って関数作成

[M1 Mac, Monterey 12.6.3, clang 13.0.0, FLTK 1.3.8, ChatGPT API(gpt-3.5-turbo), NO IDE]

ChatGPTにファイル名に任意の文字列を含むものを移動させる関数や削除する関数の中身を作ってもらいました。たった20秒で答えが返ってきます。引数はこちらで考えて完成させました。

汎用性の高い関数を量産することが可能になりました。ネットのレファレンスや逆引き辞典を使うよりもChatGPTに作らせる方が断然速いです。

namespace fs = std::filesystem;

void moveFile(fs::path srcDir, fs::path destDir, const char* str){
    try {
        // 移動元のディレクトリ内のファイルを順に処理
        for (const auto& entry : fs::directory_iterator(srcDir)) {
            // ファイル名にstrを含む場合は移動
            if (entry.path().filename().string().find(str) != std::string::npos) {
                fs::rename(entry.path(), destDir / entry.path().filename());
                std::cout << entry.path() << "を移動しました。" << std::endl;
            }
        }
    } catch (const std::filesystem::filesystem_error& e) {
        std::cerr << "ファイルの移動に失敗しました。" << std::endl;
        std::cerr << e.what() << std::endl;
        return;
    }
    
}

void removeFile(fs::path dirPath, string str){
     try {
        // ディレクトリ内のファイルを順に処理
        for (const auto& entry : fs::directory_iterator(dirPath)) {
            // ファイル名にstrを含む場合は削除
            if (entry.path().filename().string().find(str) != std::string::npos) {
                fs::remove(entry.path());
                std::cout << entry.path() << "を削除しました。" << std::endl;
            }
        }
    } catch (const std::filesystem::filesystem_error& e) {
        std::cerr << "ファイルの削除に失敗しました。" << std::endl;
        std::cerr << e.what() << std::endl;
        return;
    }
}