您可以使用C++的std::filesystem
庫來結合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
函數會通過glob
函數匹配指定模式的文件,并將它們重命名為新的文件名。您可以將要匹配的文件模式和新的文件名作為參數傳遞給renameFiles
函數。