stl: представить 1 файл как директорию (совокупность файлов)

Подскажите как с помощью std::filesystem реализовать следующий алгоритм:

мне требуется обработать 1 файл или папку с файлами (без рекурсивного обхода подпапок) одним и тем же алгоритмом

сейчас это сделано так:

if (std::filesystem::is_directory(params->m_src))
{
    for (const auto& entry : std::filesystem::directory_iterator(params->m_src))
    {
        // получить имя файла
        const std::string path = entry.path().string();

        // сформировать имя выходной папки
        const std::string output = params->m_dst + "\\" + entry.path().stem().string() + "\\";

        // обработать данные
    }
}
else
{
    // получить имя файла
    const std::string path = params->m_src;

    // сформировать имя выходной папки
    const std::string output = params->m_dst + "\\" + std::filesystem::path(path).stem().string() + "\\";

    // обработать данные
}

по сути код по большей части дублируется и хотелось бы сделать все через один и тот же код, где 1 файл просто превратить в объект директорию, содержащий 1 файл, т.е. что-то на подобии:

for (const auto& entry : (std::filesystem::is_directory(params->m_src)) ? std::filesystem::directory_iterator(params->m_src) : std::filesystem::xxx(params->m_src))
{
    // получить имя файла
    const std::string path = entry.path().string();

    // сформировать имя выходной папки
    const std::string output = params->m_dst + "\\" + entry.path().stem().string() + "\\";

    // обработать данные
}

Подскажите, возможно ли такое и как такой подход можно реализовать?


Ответы (0 шт):