#2
wp2319572022-05-20 07:00
回复 楼主 追梦人zmrghy
|
网上下载的视频,第一次下载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;
}
源代码文件
只有本站会员才能查看附件,请 登录
完整项目
只有本站会员才能查看附件,请 登录