博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
安装包设计-------卸载(MFC)---------知识总结
阅读量:4345 次
发布时间:2019-06-07

本文共 2933 字,大约阅读时间需要 9 分钟。

1、删除目录及其下所有文件

bool MyDeleteFile(CString Path) {                                                     //     SHFILEOPSTRUCT FileOp={0}; //     FileOp.fFlags = FOF_ALLOWUNDO | //允许放回回收站//         FOF_NOCONFIRMATION; //不出现确认对话框//     FileOp.pFrom = Path; //     FileOp.pTo = NULL; //一定要是NULL//     FileOp.wFunc = FO_DELETE; //删除操作//     return SHFileOperation(&FileOp) == 0;         char* sDirName = new char[Path.GetLength()+1];        strncpy(sDirName,Path,Path.GetLength()+1);        CFileFind tempFind;         char sTempFileFind[200] ;        sprintf(sTempFileFind,"%s/*.*",sDirName);        BOOL IsFinded = tempFind.FindFile(sTempFileFind);        while (IsFinded)        {             IsFinded = tempFind.FindNextFile();            if (!tempFind.IsDots())            {                 char sFoundFileName[200];                strcpy(sFoundFileName,tempFind.GetFileName().GetBuffer(200));                if (tempFind.IsDirectory())                 {                     CString sTempDir;                    sTempDir.Format("%s/%s",sDirName,sFoundFileName);                    MyDeleteFile(sTempDir);                 }                else                {                     char sTempFileName[200];                    sprintf(sTempFileName,"%s/%s",sDirName,sFoundFileName);                    DeleteFile(sTempFileName);                 }            }        }        tempFind.Close();        if(!RemoveDirectory(sDirName))         {             return false;        }        return true;}
View Code

2、删除应用程序自身

BOOL DeleteApplicationSelf(){    TCHAR tcsExename[MAX_PATH];    TCHAR tcsParam[MAX_PATH * 2];     TCHAR tcsCmd[MAX_PATH];    HANDLE hProcess = NULL; // get exe filename and command shell program     //_tcscpy(tcsExename,m_appPath);    if(0 == GetModuleFileName(NULL,tcsExename,MAX_PATH)||0 == GetEnvironmentVariable(_T("COMSPEC"), tcsCmd, MAX_PATH))    {        return FALSE;    } // get short filename for command shell program     if( 0 == GetShortPathName(tcsExename, tcsExename, MAX_PATH))     {        return FALSE;    } // create a command process, set its priority, then start it.    STARTUPINFO si;     PROCESS_INFORMATION pi;     ZeroMemory( &si, sizeof(si) );    si.cb = sizeof(si);     si.dwFlags = STARTF_USESHOWWINDOW;    si.wShowWindow = SW_HIDE;    ZeroMemory( &pi, sizeof(pi) );    _stprintf(tcsParam, _T("%s /c del %s"), tcsCmd, tcsExename);    if(!CreateProcess(NULL,tcsParam,NULL,NULL,FALSE,CREATE_SUSPENDED, NULL,NULL,&si,&pi))     {         return FALSE;        // GetLastError();    } // heigthen priority of the current process     SetPriorityClass(GetCurrentProcess(), HIGH_PRIORITY_CLASS); // set file attribute to normal     SetFileAttributes(tcsExename, FILE_ATTRIBUTE_NORMAL); // depress priority of command process, then start it     SetPriorityClass(pi.hProcess, IDLE_PRIORITY_CLASS);     ResumeThread(pi.hThread);     return TRUE;}
View Code

 

转载于:https://www.cnblogs.com/kabe/p/6368093.html

你可能感兴趣的文章
环形菜单的实现
查看>>
【解决Chrome浏览器和IE浏览器上传附件兼容的问题 -- Chrome关闭flash后,uploadify插件不可用的解决办法】...
查看>>
34 帧动画
查看>>
二次剩余及欧拉准则
查看>>
thymeleaf 自定义标签
查看>>
关于WordCount的作业
查看>>
UIView的layoutSubviews,initWithFrame,initWithCoder方法
查看>>
STM32+IAP方案 实现网络升级应用固件
查看>>
用74HC165读8个按键状态
查看>>
jpg转bmp(使用libjpeg)
查看>>
linear-gradient常用实现效果
查看>>
sql语言的一大类 DML 数据的操纵语言
查看>>
VMware黑屏解决方法
查看>>
JS中各种跳转解析
查看>>
JAVA 基础 / 第八课:面向对象 / JAVA类的方法与实例方法
查看>>
Ecust OJ
查看>>
P3384 【模板】树链剖分
查看>>
Thrift源码分析(二)-- 协议和编解码
查看>>
考勤系统之计算工作小时数
查看>>
4.1 分解条件式
查看>>