zoukankan      html  css  js  c++  java
  • MFCS删除文件夹,非空文件夹

    BOOL IsDirectory(LPCTSTR pstrPath)
    {
    	if (NULL == pstrPath)
    	{
    		return FALSE;
    	}
    
    	/*去除路径末尾的反斜杠*/
    	CString strPath = pstrPath;
    	if (strPath.Right(1) == _T('\'))
    	{
    		strPath.Delete(strPath.GetLength()-1);
    	}
    
    	CFileFind finder;
    	BOOL bRet = finder.FindFile(strPath);
    	if (!bRet)
    	{
    		return FALSE;
    	}
    
    	/*判断该路径是否是目录*/
    	finder.FindNextFile();
    	bRet = finder.IsDirectory();
    	finder.Close();
    	return bRet;
    }
    
    /*删除目录及目录中的所有内容*/
    BOOL DeleteFolder(LPCTSTR pstrFolder)
    {
    	if ((NULL == pstrFolder))
    	{
    		return FALSE;
    	}
    
    	/*检查输入目录是否是合法目录*/
    	if (!IsDirectory(pstrFolder))
    	{
    		return FALSE;
    	}
    
    	/*创建源目录中查找文件的通配符*/
    	CString strWildcard(pstrFolder);
    	if (strWildcard.Right(1) != _T('\'))
    	{
    		strWildcard += _T("\");
    	}
    	strWildcard += _T("*.*");
    
    	/*打开文件查找,查看源目录中是否存在匹配的文件*/
    	/*调用FindFile后,必须调用FindNextFile才能获得查找文件的信息*/
    	CFileFind finder;
    	BOOL bWorking = finder.FindFile(strWildcard);
    
    	while (bWorking)
    	{
    		/*查找下一个文件*/
    		bWorking = finder.FindNextFile();
    
    		/*跳过当前目录“.”和上一级目录“..”*/
    		if (finder.IsDots())
    		{
    			continue;
    		}
    
    		/*得到当前目录的子文件的路径*/
    		CString strSubFile = finder.GetFilePath();
    
    		/*判断当前文件是否是目录,*/
    		/*如果是目录,递归调用删除目录,*/
    		/*否则,直接删除文件*/
    		if (finder.IsDirectory())
    		{
    			if (!DeleteFolder(strSubFile))
    			{
    				finder.Close();
    				return FALSE;
    			}
    		}
    		else
    		{
    			if (!DeleteFile(strSubFile))
    			{
    				finder.Close();
    				return FALSE;
    			}
    		}
    
    	} /*while (bWorking)*/
    
    	/*关闭文件查找*/
    	finder.Close();
    
    	/*删除空目录*/
    	return RemoveDirectory(pstrFolder);
    }
    

      

  • 相关阅读:
    手机浏览器的viewport(视觉窗口)
    google开源了google chrome android
    Yii 直接执行SQL语句(转)
    WebKit学习网址收集
    Yii CDbCriteria的常用方法
    现货黄金入门知识普及一:图形分析之K线理论
    java 获取当前函数名
    yii url生成
    android 判断屏幕是否关闭
    yii yiiplayground
  • 原文地址:https://www.cnblogs.com/XiHua/p/13619950.html
Copyright © 2011-2022 走看看