vc利用shell删除非空目录

/************************************************************************/
/* 删除临时生成的文件                                                   */
/************************************************************************/
void DeleteDirectory()
{
    /*char szPath[MAX_PATH] = {0};

    SHGetFolderPathA(NULL,
        CSIDL_APPDATA,
        NULL,
        0,
        szPath);*/
 wstring wstrFile = GetExeDir();
 CString strCurFile = CW2A(wstrFile.c_str());
 strCurFile += "\\epbtmp";

    SHFILEOPSTRUCTA FileOp;

    ZeroMemory((void*)&FileOp,sizeof(SHFILEOPSTRUCT));

    FileOp.fFlags = FOF_SILENT|FOF_NOCONFIRMATION;

    FileOp.hNameMappings = NULL;

    FileOp.hwnd = NULL;

    FileOp.lpszProgressTitle = NULL;

    FileOp.pFrom = strCurFile;

    FileOp.pTo = NULL;

    FileOp.wFunc = FO_DELETE;

    SHFileOperationA(&FileOp); // 对于父级目录存在空格的路径好像还有问题
}


 

cmd:

system("d: & cd d:\\d\\");

WinExec("cmd /k rd /s /q d:\\d\\ & exit", SW_HIDE);

ShellExecute(NULL,"open","cmd","/k dir & exit",NULL,SW_HIDE);

STARTUPINFO  si; 

PROCESS_INFORMATION  pi;

ZeroMemery(&si, sizeof(STARTUPINFO)); 

ZeroMemery(&pi, sizeof(PROCESS_INFORMATION));

GetStartupInfo(&si);

si.cb=sizeof(STARTUPINFO); 

//si.dwFlags = STARTF_USESTDHANDLES | STARTF_USESHOWWINDOW;

//si.wShowWindow=SW_HIDE;

CreateProcess(NULL,"cmd /k regedit & exit",NULL,NULL,FALSE,CREATE_NO_WINDOW,NULL,NULL,&si,&pi);

CreateProcess(cmd ,"/k regedit & exit",NULL,NULL,FALSE,CREATE_NO_WINDOW,NULL,NULL,&si,&pi);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值