拡張子のないファイルがあり、それに拡張子を追加したい.avi
。したがって、openfileダイアログでファイルを選択した後にこの関数を呼び出します(名前を変更した後にファイルを開きたい):
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