美文网首页成都匠心互动
c++将某文件夹下的所有文件名改为大写开头,并移除非英文字母重命

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

作者: 爱喝粥的西瓜 | 来源:发表于2017-08-03 18:07 被阅读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);
        }
    }
    

    相关文章

      网友评论

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

        本文链接:https://www.haomeiwen.com/subject/zzoplxtx.html