杂记(1)

 1. 如何获得运行程序当前所在文件夹地址

      

       
                char szFolder[1024] = {0};
                ::GetModuleFileName(NULL,szFolder,1024);
                CString Temp = _T(szFolder);
                int pos = Temp.ReverseFind('\\');
                CString StrFolderTemp(szFolder,pos);
                StrFolder.Format("%s",StrFolderTemp); 


          2.如何让一个MFC程序只存在一个运行实例

                将下面这段代码放在InitInstance()函数中

       CString StrName="test";
       hMutex=OpenMutex(MUTEX_ALL_ACCESS,FALSE,StrName);
       if(hMutex==NULL){
          hMutex=::CreateMutex(NULL,NULL,StrName);
       }else{
          if(AfxMessageBox("程序实例已经存在",MB_ICONQUESTION|MB_YESNO==IDYES)){
              return FALSE;
            }
       }

           3.删除一个文件夹下的所有文件

            

void MyFolder::RecursiveDelete(CString Path){
	CFileFind ff;
	CString cPath=Path;
	if(cPath.Right(1)!="\\"){
		cPath+="\\";
	}
	cPath+="*";
	BOOL res=ff.FindFile(cPath);
	while(res){
		res=ff.FindNextFile();
		CString name=ff.GetFilePath();
		if(!ff.IsDots()&&!ff.IsDirectory()){
			DeleteFile(ff.GetFilePath());
		}else if(ff.IsDots()){
			continue;
		}else if(ff.IsDirectory()){
			cPath=ff.GetFilePath();
			RecursiveDelete(cPath);
			RemoveDirectory(cPath);
		}
	}
}

4.复制文件时显示进度

	char *From = "F:\\test.txt\0";
	char *To = "E:\\test.txt\0";
	SHFILEOPSTRUCT op;
	ZeroMemory(&op, sizeof(op));
	op.hwnd = NULL; // 主窗体或应用程序的句柄,允许为NULL
	op.wFunc = FO_COPY;	//此处可改变,执行移动功能(FO_MOVE)
	op.pFrom = From;
	op.pTo = To;
	op.fFlags= 0;
	SHFileOperation( &op);



          





                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

酷python

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值