我有一个扩展名较少的文件,我想为其添加.avi
扩展名。因此,我调用这个函数通过OPENFILE对话框中选择文件后(我想要重命名后打开文件):尝试向文件添加扩展名时,Rename()函数不起作用
int RenameVidAddExt(HWND hWnd, char oldname[MAX_PATH])
{
int filenamesize=0, n=0;
char extension [] = ".avi";
char* newname;
for (n=0 ; oldname[n]!=NULL ; n++)
{
filenamesize++;
}
newname = new char[filenamesize+sizeof(extension)];
newname = oldname;
strcat (newname, extension);
//SetDlgItemTextA(hWnd, IDC_EDIT1, szFile); //test print of filenameof selected file
//SetDlgItemTextA(hWnd, IDC_EDIT2, newname); //test print of newname
rename(oldname,newname);
return 0;
}
文件名就是不改变,我不知道为什么。测试打印显示oldname
和newname
包含正确的字符串(旧的没有扩展名和新的)。
'new []'count:1.'delete []'count:0呃哦。你有没有考虑过'std :: vector'? – 2011-04-07 00:39:24
你检查了errno吗? http://msdn.microsoft.com/en-us/library/zw5t957f%28vs.71%29.aspx – littleadv 2011-04-07 00:59:54