MFC应用实例:[64]文件夹重命名

2025-11-10 01:09:03

1、新建一个基于对话框的应用程序,工程名为RenameDir。

MFC应用实例:[64]文件夹重命名

2、界面设计如下,添加两个按钮,两个编辑框,两个文本控件。

MFC应用实例:[64]文件夹重命名

3、对“...”言哨搁按钮添加响应函数OnBTFindDir() ,响应函数OnBTFindDir() 代捕婶码如下:

void CRenameDirDlg::OnBTFindDir() 

{

CString path = SelectFolder(this->m_hWnd);  //打开要重命名的文件夹

GetDlgItem(IDC_EDIT1)->SetWindowText(path); //将文件夹的路径显示在编辑框

}

CString CRenameDirDlg::SelectFolder(const HWND& hwnd)//选择文件夹

{

CString str;

LPMALLOC pMalloc;

str.Empty();

if (::SHGetMalloc(&pMalloc) == NOERROR)

{   

BROWSEINFO bi;

TCHAR pszBuffer[MAX_PATH];

LPITEMIDLIST pidl;   

bi.hwndOwner = hwnd;   

bi.pidlRoot = NULL;   

bi.pszDisplayName = pszBuffer;   

bi.lpszTitle = _T("select directory");   

bi.ulFlags = BIF_RETURNFSANCESTORS | BIF_RETURNONLYFSDIRS;   

bi.lpfn = NULL;   

bi.lParam = 0;   

bi.iImage = 0;   

if ((pidl = ::SHBrowseForFolder(&bi)) !=NULL)   

{   

if (::SHGetPathFromIDList(pidl, pszBuffer))

str = pszBuffer;

else

return _T("");   

pMalloc->Free(pidl);   

}   

pMalloc->Release();   

}

return str;

}

MFC应用实例:[64]文件夹重命名

4、对“重命名”按钮添加响应函数OnBTRename() ,响应函数OnBTRename() 代码如下:

void CRenameDirDlg::OnBTRename() //给文件夹重命名

{

CString path;

GetDlgItem(IDC_EDIT1)->GetWindowText(path);//得到源文件夹路径

CString dst = path; //得到文件夹所在目录

int len = path.GetLength();  //得到路径长度

int index = path.ReverseFind('\\') + 1; 

dst.Delete(index, len - index);

CString temp;

GetDlgItem(IDC_EDIT2)->GetWindowText(temp);//得到重命名后的文件夹名

dst += temp;

if (MoveFile(path, dst))//重命名

MessageBox("重命名完忌率成");

else

MessageBox("重命名失败");

}

MFC应用实例:[64]文件夹重命名

5、程序运行如下:

MFC应用实例:[64]文件夹重命名

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢