C/C++ 删除指定目录

来源:互联网 发布:网络购物中心 编辑:程序博客网 时间:2024/05/14 23:21

1.介绍

  用到shlwapi.h和tchar.h头文件。
  shlwapi.h是shlwapi.dll头文件,shlwapi.dll(Microsoft Shell Light-weight Utility Library)中定义了路径相关的操作,也包括了部分文件操作函数。由于shlwapi.dll属于Microsoft Windows Shell,因此这些文件操作特点与通过Shell进行文件操作类似。
下面列出部分常用的文件操作相关函数。

函数名 作用 PathIsDirectory 判断一个路径是否有效目录 PathIsDirectoryEmpty 判断一个路径是否空目录 PathFileExists 判断一个路径是否有效目录或文件 PathRenameExtension 更改文件的后缀名 SHFileOperation 可实现文件或目录的复制、移动、重命名和删除操作,并可一次操作多个文件或目录

  
  其中,SHFileOperation可实现整个目录的内容的复制和删除。SHFileOperation可一次实现多个目录的复制或删除,其输入参数结构体SHFILEOPSTRUCT中的pFrom(源目录)和pTo(目的目录)都可以输入多个目录,目录之间通过’\0’分割,pFrom和pTo必须以2个’\0’结尾。一般情况下,我们都只是对一个目录操作,因此,SHFileOperation调用并不是很方便,下面就对SHFileOperation进行包装,提供更方便调用的目录操作函数。

代码

BOOL SHDeleteFolder(LPCTSTR pstrFolder){    int iPathLen = _tcslen(pstrFolder);    TCHAR tczFolder[MAX_PATH+1];    SHFILEOPSTRUCT FileOp;     if ((NULL == pstrFolder))    {        return FALSE;    }    if (iPathLen >= MAX_PATH)    {        return FALSE;    }    /*确保目录的路径以2个\0结尾*/    ZeroMemory(tczFolder, (MAX_PATH+1)*sizeof(TCHAR));    _tcscpy(tczFolder, pstrFolder);    tczFolder[iPathLen] = _T('\0');    tczFolder[iPathLen+1] = _T('\0');    ZeroMemory(&FileOp, sizeof(SHFILEOPSTRUCT));     FileOp.fFlags |= FOF_SILENT;            //不显示进度    FileOp.fFlags |= FOF_NOERRORUI;         //不报告错误信息    FileOp.fFlags |= FOF_NOCONFIRMATION;    //直接删除,不进行确认    FileOp.hNameMappings = NULL;    FileOp.hwnd = NULL;    FileOp.lpszProgressTitle = NULL;    FileOp.wFunc = FO_DELETE;    FileOp.pFrom = tczFolder;               //要删除的目录,必须以2个\0结尾    FileOp.pTo = NULL;     FileOp.fFlags &= ~FOF_ALLOWUNDO;       //直接删除,不放入回收站    /*删除目录*/    if (0 == SHFileOperation(&FileOp))    {        return TRUE;    }    else    {        return FALSE;    }}

3. 测试

int main(){    SHDeleteFolder("D:\\removeFile");    return 0;}
1 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 清理空间时不小心把图片删了怎么办 手机中清理误把照片删了怎么办 清理手机文件把照片给删了怎么办 清理手机不小心把照片删了怎么办 金牛不回微信我也不理他他会怎么办 华为手机微信文件自动删除怎么办 微信清理数据后不能登录了怎么办 k歌占内存又不想删除歌曲怎么办 把所有商品放在一起做链接怎么办 微信解冻短信验证总显示失败怎么办 淘金币能抵钱商家拿了淘金币怎么办 真实订单被系统判定虚假交易怎么办 淘宝买家号疑似虚假交易违规怎么办 货品交易一方收了定金违约了怎么办 饿了么店铺收到差评怎么办 淘宝顾客退款没成功给差评怎么办 身份证绑定了淘宝注册支付宝怎么办 把钱转错到支付宝账号被扣了怎么办 网上买东西收到信息被删掉了怎么办 表格在手机上显示不出来怎么办? 电子表格中复制后没有虚线框怎么办 word中页眉页脚横线短了怎么办 亿图图示画的图不显示怎么办 掌柜宝用了几天无法登录了怎么办 手机千牛消息不小心删除了怎么办 淘宝账号被冻结提示无法恢复怎么办 商家未发货我误点了确认收货怎么办 淘宝买货商家不发货也不退款怎么办 商家没发货点成收货了怎么办 淘宝新店上架产品未通过审核怎么办 安卓手机电池虚电怎么办_查查吧 拼多多拼单期间商家下架商品怎么办 微信绑别人的卡需要人脸认证怎么办 支付宝把钱转到了停用的账号怎么办 我注册征信账号忘记了要怎么办 客户说考虑考虑我该怎么办招商类 浴巾用久了黑黑的洗不干净怎么办 wifi密码被别人改了怎么办啊 苹果手机更新后账号密码忘了怎么办 专项预审批额度额度时效了怎么办 id密码和id码丢了怎么办