• 全部
  • VC综合技术
  • 互联网技术
  • MFC AppLauncher
  • .NET 技术
  • 界面
  • 进程
  • 算法
  • 硬件/系统
  • 数据库
  • VC++技术资源

请问,哪个函数可以删除掉不空的目录?

shi_hang_nk 中创软件昆山公司 副总工程师  2001-07-13 10:54:04
...全文
52 点赞 收藏 5
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
gameboy999 2001-07-13
delete_tree 函数,应该是标准C函数库里的
回复
iProgram 2001-07-13
没有。
用FindFirstFile和FindNextFile枚举所有文件和子目录逐一删除。
或者,比较不要脸的方法:调用DOS的Deletetree dirname /y
如:ShellExecute(NULL,"Deletetree C:\\windows /y"...);
但是在Win2k中的通过cmd.com控制dos程序的运行
回复
ahphone 2001-07-13
Q:求一删除目录的算法!
A:为什么不用SHFileOperation函数?
1.BOOL DeleteDir(LPCTSTR lpszDir)
{


SHFILEOPSTRUCT FileOp;
//add begins...
TCHAR buf[_MAX_PATH+2];
memset(buf,0,sizeof(buf));
_tcscpy(buf,lpszDir);
//add ends...
memset(&FileOp,0,sizeof(SHFILEOPSTRUCT));
FileOp.hwnd=m_hWnd;
FileOp.wFunc=FO_DELETE;
FileOp.pFrom=buf; //改一下pFrom指针到buf.
FileOp.pTo=NULL;
FileOp.fFlags=FOF_NOCONFIRMATION¦FOF_SILENT¦FOF_ALLOWUNDO;
FileOp.fAnyOperationsAborted=FALSE;
FileOp.hNameMappings =NULL;
FileOp.lpszProgressTitle =NULL;
int rval=SHFileOperation(&FileOp);
if(rval==0)
{
if(FileOp.fAnyOperationsAborted==TRUE)
{
::AfxMessageBox("删除项目操作被取消!",MB_OK);
return FALSE;
}
else
{
//::AfxMessageBox("删除目录操作成功!",MB_OK);
return TRUE;
}
}
else
{
::AfxMessageBox("删除项目操作失败!",MB_OK¦MB_ICONEXCLAMATION);
return FALSE;
}
}

2.BOOL DeleteDirectory(LPCTSTR strDes)
{

//删除目标目录下的所有文件
WIN32_FIND_DATA FileData;
HANDLE hSearch;
BOOL bFinished=FALSE;
CString strTemp(strDes); strTemp+=_T("\\*.*");


hSearch=FindFirstFile((LPCTSTR)strTemp,&FileData);
if (hSearch==INVALID_HANDLE_VALUE)
{
bFinished=TRUE; //该目录下没有文件
}
while(!bFinished)
{
strTemp=strDes;
strTemp=strTemp+_T("\\")+FileData.cFileName;
//是目录就进入递归调用
if (FileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY )
{
DeleteDirectory(strTemp);
}
else
{//是文件则删除
DeleteFile(strTemp);
}
if (!FindNextFile(hSearch,&FileData))
{
bFinished=TRUE;
}
}
FindClose(hSearch);
//删除空目录
RemoveDirectory(strDes);
return TRUE;
}

回复
qin_wei 2001-07-13
SHFileOperation API
回复
verybigbug 2001-07-13
SHFileOperation
回复
相关推荐
发帖
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
帖子事件
创建了帖子
2001-07-13 10:54
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……