//刪除文件或者文件夾
bool DeleteFile(TCHAR * lpszPath)
{
SHFILEOPSTRUCT FileOp={0};
FileOp.fFlags = FOF_ALLOWUNDO | //允許放回回收站
FOF_NOCONFIRMATION; //不出現確認對話框
FileOp.pFrom = lpszPath;
FileOp.pTo = NULL; //壹定要是NULL
FileOp.wFunc = FO_DELETE; //刪除操作
return SHFileOperation(&FileOp) == 0;
}
//復制文件或文件夾
bool CopyFile(TCHAR *pTo,TCHAR *pFrom)
{
SHFILEOPSTRUCT FileOp={0};
FileOp.fFlags = FOF_NOCONFIRMATION| //不出現確認對話框
FOF_NOCONFIRMMKDIR //需要時直接創建壹個文件夾,不需用戶確定
|FOF_SIMPLEPROGRESS ; //進度條
FileOp.pFrom = pFrom;
FileOp.pTo = pTo;
FileOp.wFunc = FO_COPY;
return SHFileOperation(&FileOp) == 0;
}
//移動文件或文件夾
bool MoveFile(TCHAR *pTo,TCHAR *pFrom)
{
SHFILEOPSTRUCT FileOp={0};
FileOp.fFlags = FOF_NOCONFIRMATION| //不出現確認對話框
FOF_NOCONFIRMMKDIR ; //需要時直接創建壹個文件夾,不需用戶確定
FileOp.pFrom = pFrom;
FileOp.pTo = pTo;
FileOp.wFunc = FO_MOVE;
return SHFileOperation(&FileOp) == 0;
}
//從命名文件或文件夾
bool ReNameFile(TCHAR *pTo,TCHAR *pFrom)
{
SHFILEOPSTRUCT FileOp={0};
FileOp.fFlags = FOF_NOCONFIRMATION ;
FileOp.pFrom = pFrom;
FileOp.pTo = pTo;
FileOp.wFunc = FO_RENAME;
FileOp.hwnd= HWND_DESKTOP;
return SHFileOperation(&FileOp)==0;
}
void CShfileopDlg::OnButton1()
{
// TODO: Add your control notification handler code here
CopyFile(_T("c:\\two"),_T("c:\\123"));
ReNameFile(_T("c:\\newtwo"),_T("c:\\123"));
DeleteFile(_T("c:\\newtwo"));
AfxMessageBox(_T("完成"));
}