需求
个人需要将一个文件夹下的大量png格式的文件名称转换为没有非英文字符,且首字母大写的命名格式,简单的写了个小程序,由于已知只有一个文件夹,顾没有做递归的处理,(偷懒了),留着以后查阅
#include <io.h>
#include <iostream>
using namespace std;
void MyRename(_finddata_t& fileinfo, std::string a)
{
std::string name = fileinfo.name;
std::string newName = name;
for (int i = 0; i < newName.length();)
{
if ((newName[i] >= 'a' && newName[i] <= 'z') || (newName[i] >= 'A' && newName[i] <= 'Z') || newName[i] == '.')
{
i++;
}
else
{
newName.replace(i, 1, "");
}
}
if(newName[0] >= 'a')
newName[0] -= 'a' - 'A';
std::string o = a + "\\";
o += name;
std::string n = a + "\\";
n += newName;
rename(o.c_str(), n.c_str());
}
void main()
{
long handle;
struct _finddata_t fileinfo;
std::string dir ="C:\\Users\\Administrator\\Desktop\\all";
handle = _findfirst((dir + "\\*.png").c_str(), &fileinfo);
if (handle == -1)
{
return;
}
MyRename(fileinfo,dir);
while(!_findnext(handle,&fileinfo))
{
MyRename(fileinfo,dir);
}
}
网友评论