重命名具有相同名称但扩展名不同的文件

时间:2015-04-02 10:42:47

标签: c++ visual-c++ mfc

如果在我的应用程序上单击了一个复选框,则将重命名具有相同预点名称的指定文件夹中的所有文件(例如,TESTCRC32.xxx)。如果文件名是别的,(例如,Pic.jpg),则不会重命名该文件。

我该如何解决这个问题?我在想一个for循环...

void SecondDlg::OnTickBox() 
{

  // Add code here...

   CString oldFile = myPath.Left(myPath.ReverseFind(_T('.'))); 

   rename(oldFile, newFile);
}

1 个答案:

答案 0 :(得分:1)

你做错了。举个例子,假设myPath有路径"C:\abc\xyz.bmp" 在这一行之后:

CString oldFile = myPath.Left(myPath.ReverseFind(_T('.')));

现在:

oldFile = "C:\\abc\\xyz";  // extension removed

最后你打电话给rename

rename(oldFile, newFile);  //you can use myPath instead of oldFile

作为oldFile = "C:\abc\xyz";并且它不是正确的路径,因此它不会重命名该文件 你应该传递文件的完整路径(C:\ abc \ xyz.bmp)。

相关问题