溫馨提示×

如何結(jié)合C++ Glob進行文件重命名

c++
小樊
83
2024-08-19 19:12:29
欄目: 編程語言

您可以使用C++的std::filesystem庫來結(jié)合glob進行文件重命名。下面是一個簡單的示例代碼:

#include <iostream>
#include <string>
#include <filesystem>
#include <glob.h>

void renameFiles(const std::string& pattern, const std::string& newName)
{
    glob_t globResult;
    glob(pattern.c_str(), GLOB_TILDE, NULL, &globResult);

    for(size_t i = 0; i < globResult.gl_pathc; ++i)
    {
        std::filesystem::path oldPath(globResult.gl_pathv[i]);
        std::filesystem::path newPath = oldPath.parent_path() / newName;

        try
        {
            std::filesystem::rename(oldPath, newPath);
        }
        catch(const std::exception& e)
        {
            std::cerr << e.what() << std::endl;
        }
    }

    globfree(&globResult);
}

int main()
{
    std::string pattern = "path/to/files/*.txt";
    std::string newName = "newFileName.txt";

    renameFiles(pattern, newName);

    return 0;
}

在這個示例中,renameFiles函數(shù)會通過glob函數(shù)匹配指定模式的文件,并將它們重命名為新的文件名。您可以將要匹配的文件模式和新的文件名作為參數(shù)傳遞給renameFiles函數(shù)。

0