求助,字符串编辑,修改文件名
											修改文件名,好麻烦呀。。。网上下载的视频,第一次下载6集,文件名中‘:’冒号是全角, '('括号是半角。
第二次下载8集,文件名中‘:’冒号是全角, '('括号是全角。
全角和半角,在char[ ]数组中是不同的。
string.rfind(''); 可以查找半角标点符号的位置,如何查找全角标点符号的位置?
写程序,折腾了半天,功能实现了。。。
程序,改的面目全非,惨不忍睹,自己都不忍心看了。。。
求大神,帮我修改一下。。。
多使用,字符串库函数,简化一下代码。。。。
下载的原文件名如下
空中浩劫第一季(国语配音) - 1.空中浩劫S01E01:联合航空811号班机(国语配音无字幕)(Av802929849,P1).mp4
空中浩劫第一季(国语配音) - 2.空中浩劫S01E02:美国航空1420号班机(国语配音无字幕)(Av802929849,P2).mp4
空中浩劫第一季(国语配音) - 3.空中浩劫S01E03:瑞士航空111号班机(国语配音无字幕)(Av802929849,P3).mp4
空中浩劫第一季(国语配音) - 4.空中浩劫S01E04:秘鲁航空603号班机(国语配音无字幕)(Av802929849,P4).mp4
空中浩劫第一季(国语配音) - 5.空中浩劫S01E05:阿拉斯加航空261号班机(国语配音无字幕)(Av802929849,P5).mp4
空中浩劫第一季(国语配音) - 6.空中浩劫S01E06:越洋航空236号班机(国语配音无字幕)(Av802929849,P6).mp4
空中浩劫系列(国语配音)2 - 2.空中浩劫S03E06:伊朗航空655号班机(国语配音)(Av467940195,P2).mp4
空中浩劫系列(国语配音)2 - 3.空中浩劫S03E08:埃及航空990号班机(国语配音)(Av467940195,P3).mp4
空中浩劫系列(国语配音)2 - 4.空中浩劫S04E07:墨西哥国际航空498号班机(国语配音)(Av467940195,P4).mp4
空中浩劫系列(国语配音)2 - 5.空中浩劫S11E01:巴西天马航空3054号班机(国语配音)(Av467940195,P5).mp4
空中浩劫系列(国语配音)2 - 6.空中浩劫S11E02:西加勒比海航空708号班机(国语配音)(Av467940195,P6).mp4
空中浩劫系列(国语配音)2 - 7.空中浩劫S11E09:尼日利亚航空2120号班机(国语配音)(Av467940195,P7).mp4
空中浩劫系列(国语配音)2 - 8.空中浩劫S11E10:太平洋西南航空1771号班机(国语配音)(Av467940195,P8).mp4
空中浩劫系列(国语配音)2 - 9.空中浩劫S11E13:美国联合航空232号班机(国语配音)(Av467940195,P9).mp4
修改后文件名如下
联合航空811号班机.mp4
美国航空1420号班机.mp4
瑞士航空111号班机.mp4
秘鲁航空603号班机.mp4
阿拉斯加航空261号班机.mp4
越洋航空236号班机.mp4
伊朗航空655号班机.mp4
埃及航空990号班机.mp4
墨西哥国际航空498号班机.mp4
巴西天马航空3054号班机.mp4
西加勒比海航空708号班机.mp4
尼日利亚航空2120号班机.mp4
太平洋西南航空1771号班机.mp4
美国联合航空232号班机.mp4
 程序代码:
程序代码:
#include<iostream>
#include<io.h>
#include<string>
using namespace std;
void changeFileName(string path)
{
    char exte[5] = ".mp4";         //文件扩展名
    _finddata_t findData;
    intptr_t handle = _findfirst(path.c_str(), &findData);  //查找目录中的第一个文件
    if(handle == -1) throw exception("Error");
    do
    {
        char oldname[260] = {0};
        char newname[260] = {0};
            int j=0;
            strcpy(oldname, findData.name);
            for(j=0; j<128; j++)
            {
                if(oldname[j] == '-')  //原文件名中都有‘-’,防止文件改名后,再次被读入进行改名。。。
                    break;
            }
            if(j >= 128)
                continue;
            int i=0;
            while(!(oldname[i] == -93 && oldname[i+1] == -70))
                i++;
            i += 2;
            int start = i;
        for(; i<260; i++)
        {
            if(oldname[i] == 40||(oldname[i]== -93 && oldname[i+1] == -88))
                break;
            newname[i-start] = oldname[i];
        }
        strcat(newname,exte);        //添加文件扩展名 .mp4
        char old[512] = "C:\\Users\\Administrator\\Desktop\\[WPF]JJDown\\Download\\";
        char nwe[512] = "C:\\Users\\Administrator\\Desktop\\[WPF]JJDown\\Download\\";
        strcat(old, oldname);
        strcat(nwe, newname);
        rename(old, nwe);
    }while(_findnext(handle, &findData) == 0);      //找到目录中下一个文件
    _findclose(handle);
}
int main()
{
    string path = "C:\\Users\\Administrator\\Desktop\\[WPF]JJDown\\Download\\*.mp4";
    changeFileName(path);
    return 0;
}
源代码文件
 main.rar
				(806 Bytes)
main.rar
				(806 Bytes)
				
				
			完整项目
 rename.rar
				(1.35 MB)
rename.rar
				(1.35 MB)
				
				
			
 
											






 
	    


