成都匠心互动

c++将某文件夹下的所有文件名改为大写开头,并移除非英文字母重命

2017-08-03  本文已影响4人  爱喝粥的西瓜

需求

       个人需要将一个文件夹下的大量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);
    }
}
上一篇 下一篇

猜你喜欢

热点阅读