bool DeleteFolder(LPCTSTR szFolderName)
{
try
{
if( (!::PathFileExists(szFolderName))||(FALSE == PathIsDirectory(szFolderName)) )
{
return false;
}
LPCTSTR szNewFolderName;
if(szFolderName[lstrlen(szFolderName)-1] == TCHAR('//'))
{
szNewFolderName = new const TCHAR[lstrlen(szFolderName)+1];
memset((LPTSTR)szNewFolderName, TCHAR('/0'), lstrlen(szFolderName)+1); //szNewFolderName 后面需要两个字串结束符
_tcsncpy((LPTSTR)szNewFolderName, szFolderName, lstrlen(szFolderName)-1);
}
else
{
szNewFolderName = new const TCHAR[lstrlen(szFolderName)+2];
memset((LPTSTR)szNewFolderName, TCHAR('/0'), lstrlen(szFolderName)+2); //szNewFolderName 后面需要两个字串结束符
_tcscpy((LPTSTR)szNewFolderName, szFolderName);
}
SHFILEOPSTRUCT fos;
ZeroMemory(&fos, sizeof(fos));
fos.hwnd = HWND_DESKTOP;
fos.wFunc = FO_DELETE;
fos.fFlags = FOF_SILENT|FOF_NOCONFIRMATION|FOF_NOERRORUI;//|FOF_ALLOWUNDO;
fos.pFrom = szNewFolderName;
if(SHFileOperation(&fos) == 0)
{
return true;
}
return false;
}
catch( ... )
{
return false;
}
}