[C/C++源码]删除目录/重建目录/清理垃圾
作者:LOJA 日期:2009-08-25
分享一段简单的源码,使用了WinCE Shell API,可以删除目录和重建目录,可用来删除目录内文件或清理垃圾文件.
这个是"管它"的"清理垃圾"和"清理日志"任务的源码,M8上测试通过.
用于M8,WinCE/WM需要把CMzString相关地方稍作修改.
/************************************
*
* Author:LOJA
* Date: 2009/08/25
*
*
*************************************/
#include<Shellapi.h> //WinCE
//重建目录函数(删除整个目录及其子目录子文件,然后重新创建该目录)
BOOL RebuildDirectory(const CMzString str,bool BRebulid=true)
{
SHFILEOPSTRUCT lpFileOp;
lpFileOp.hwnd=NULL;
lpFileOp.wFunc=FO_Delete;
lpFileOp.fFlags=FOF_NOCONFIRMATION|FOF_NOERRORUI|FOF_SILENT; //不提示覆盖,不显示错误,不显示进度
lpFileOp.pFrom=str.C_Str();
if(SHFileOperation(&lpFileOp)==0)
{
if (BRebulid)
{
return CreateDirectory(lpFileOp.pFrom,NULL);
}
else
{
return TRUE;
}
}
return FALSE;
}
//M8清理垃圾
CMzString strFolder; //使用魅族CMzString类前请包含相关头文件
strFolder=L"Temp";
RebuildDirectory(strFolder);
strFolder=L"Windows\\Profiles";
RebuildDirectory(strFolder);
strFolder=L"Windows\\Recent";
RebuildDirectory(strFolder);
strFolder=L"Windows\\Temp";
RebuildDirectory(strFolder);
strFolder=L"Windows\\www";
RebuildDirectory(strFolder);
strFolder=L"Disk\\Temp";
RebuildDirectory(strFolder);
strFolder=L"Disk\\Application Data\\WebBrowser\\cache";
RebuildDirectory(strFolder);
strFolder=L"Disk\\Application Data\\WebBrowser\\tmp";
RebuildDirectory(strFolder);
//M8清理日志
CMzString strFolder;
strFolder=L"Disk\\Application Data\\Log";
RebuildDirectory(strFolder);
这个是"管它"的"清理垃圾"和"清理日志"任务的源码,M8上测试通过.
用于M8,WinCE/WM需要把CMzString相关地方稍作修改.
复制内容到剪贴板
程序代码
程序代码/************************************
*
* Author:LOJA
* Date: 2009/08/25
*
*
*************************************/
#include<Shellapi.h> //WinCE
//重建目录函数(删除整个目录及其子目录子文件,然后重新创建该目录)
BOOL RebuildDirectory(const CMzString str,bool BRebulid=true)
{
SHFILEOPSTRUCT lpFileOp;
lpFileOp.hwnd=NULL;
lpFileOp.wFunc=FO_Delete;
lpFileOp.fFlags=FOF_NOCONFIRMATION|FOF_NOERRORUI|FOF_SILENT; //不提示覆盖,不显示错误,不显示进度
lpFileOp.pFrom=str.C_Str();
if(SHFileOperation(&lpFileOp)==0)
{
if (BRebulid)
{
return CreateDirectory(lpFileOp.pFrom,NULL);
}
else
{
return TRUE;
}
}
return FALSE;
}
//M8清理垃圾
CMzString strFolder; //使用魅族CMzString类前请包含相关头文件
strFolder=L"Temp";
RebuildDirectory(strFolder);
strFolder=L"Windows\\Profiles";
RebuildDirectory(strFolder);
strFolder=L"Windows\\Recent";
RebuildDirectory(strFolder);
strFolder=L"Windows\\Temp";
RebuildDirectory(strFolder);
strFolder=L"Windows\\www";
RebuildDirectory(strFolder);
strFolder=L"Disk\\Temp";
RebuildDirectory(strFolder);
strFolder=L"Disk\\Application Data\\WebBrowser\\cache";
RebuildDirectory(strFolder);
strFolder=L"Disk\\Application Data\\WebBrowser\\tmp";
RebuildDirectory(strFolder);
//M8清理日志
CMzString strFolder;
strFolder=L"Disk\\Application Data\\Log";
RebuildDirectory(strFolder);
[本日志由 LOJA 于 2009-08-26 12:35 AM 编辑]
上一篇: [C/C++源码]WinCE屏幕快照
下一篇: [M8][开源]动画锁屏/待机 V1.2
文章来自: 本站原创
Tags: C C++ 源码 清理垃圾 删除目录 重建目录 M8 WinCE WM
相关日志:
评论: 6 | 引用: 0 | 查看次数: -
4#
我的意思就是您上面的代码不能通过编译。
LOJA"/> LOJA 回复
RebuildDirectory直接用这个函数吧,当然不能全部复制在一起编译.下面清理部分放到比如按钮事件里,选择性吸收吧.
地板
我知道。但是我太菜了。找不到问题的根源。你能搞一下吗?
LOJA"/> LOJA 回复
loja[at]tom.com
发我邮箱帮你看看
发我邮箱帮你看看
板凳
为什么我运行不通过呢。显示fatal error C1014: 包含文件太多 : 深度 = 1024
LOJA"/> LOJA 回复
应该头文件包含有问题.
发表评论



| 120.87.127.66 | 
回复
lpFileOp.wFunc=FO_Delete;\\这句宏是大写的FO_Delete,如果换成FO_COPY,可以拷贝整个文件夹。