C++文件重命名失败
我是想把一个文件夹下所有文件按照一个格式命名,可为什么我这段代码不能正确的重命名文件?运行没什么错误,可就是没效果,就是rename没正确运行,或者说我没写对,有人能帮我解答一下吗?今天晚上就得搞定,大家帮帮忙啊……
#include<iostream>C++ rename
#include<io.h>
using namespace std;
void main()
{
string newname = "image_disciple_";
//ar newname[30] = "image_disciple_";
int num = 1099;
//string lujing = "C:\\Users\\carol\\Documents\\Tencent Files\\189654842\\FileRecv\\test\";
_finddata_t file;
long lf;
if((lf = _findfirst("C:\\Users\\carol\\Documents\\Tencent Files\\189654842\\FileRecv\\调整尺寸PNG\\*.*", &file))==-1l)//_findfirst返回的是long型; long __cdecl _findfirst(const char *, struct _finddata_t *)
cout<<"文件没有找到!\n";
else
{
cout<<"\n文件列表:\n";
while( _findnext( lf, &file ) == 0 )//int __cdecl _findnext(long, struct _finddata_t *);如果找到下个文件的名字成功的话就返回0,否则返回-1
{
char cnum[4] = "";
cout<<file.name<< " ";
++num;
itoa(num,cnum,10);
newname += cnum;
newname += ".png";
int c = rename(file.name,newname.c_str());//这里貌似一直失败,为什么啊?是函数用法不对吗?
if (c==0)
cout<<"succeed!";
cout<<newname.c_str();
newname = "image_disciple_";
cout<<endl;
}
}
_findclose(lf);
system("pause");
}
[解决办法]
//这里换成一个char NewfileName[];
//用strcpy函数拷贝试试
newname += cnum;
newname += ".png";
int c = rename(file.name,newname.c_str());
//rename函数调用换下
int c = rename(file.name,NewfileName);
if (c != 0)
printf("rename failed!\n");
if (c != 0)
printf("rename failed c =%d!\n", c);