zoukankan      html  css  js  c++  java
  • 【转】VC MFC 如何删除文件,目录,文件夹

    原文网址:http://shijuanfeng.blogbus.com/logs/100675115.html

    第一种方法:定义一个文件类对象来操作
    CFile   TempFile;   
      TempFile.Remove(指定文件名); 
    第二种方法:  使用系统函数 DeleteFile( LPCSTR filename )删除文件    _rmdir(),删除目录 DeleteDirectory(sTempDir);  删除目录 RemoveDirectory(sTempDir);删除目录
    eg:  DeleteFile(   char   *tempFileName);   

    令注:若要清空文件,但保留目录用: system(“del  C: emp”); // 清空了C: emp中的所有文件,但是不会清楚文件夹下的子目录,而且会弹出:是否删除的Doc框 

    //删除文件夹目录(非空) 上面提到的删除目录的方法只能删除空目录(即文件夹),如果目录下有文件或者子目录,就不能删除了,VC里好像没有直接的函数,只能手动写个函数来删除了,下面提供一个删除非空目录的方法: 

    bool DeleteDirectory(char* sDirName)
    {

    CFileFind tempFind;
      char sTempFileFind[200];
      strcpy(sTempFileFind, sDirName);
      strcat(sTempFileFind, “\*.*”);
     
      BOOL IsFinded = tempFind.FindFile(sTempFileFind);
      while (IsFinded)
      {
       IsFinded = tempFind.FindNextFile();  
      
       char sFoundFileName[200];
       strcpy(sFoundFileName,tempFind.GetFilePath()); 
       DeleteFile(sFoundFileName);   
     }
      tempFind.Close();

    }

    清空整个文件夹的内容(包括子文件夹),但保留该文件夹

    void CRelCtrlDlg::DeleteDirectory(char* sDirName)
    {
     char sPath[200];
     strcpy(sPath, sDirName);

     CFileFind   ff;
     BOOL   bFound;
     char sTempFileFind[200];
     strcpy(sTempFileFind, sPath);
     strcat(sTempFileFind, “\*.*”);

     bFound   =   ff.FindFile(sTempFileFind);

     while(bFound)
     {
      bFound   =   ff.FindNextFile();
      CString  sFilePath   =   ff.GetFilePath();

      if(ff.IsDirectory())
      {
       if(!ff.IsDots())
        DeleteDirectory((LPSTR)(LPCTSTR)sFilePath);
      }
      else
      {
       if(ff.IsReadOnly())
       {
        SetFileAttributes(sFilePath,   FILE_ATTRIBUTE_NORMAL);
       }
       DeleteFile(sFilePath);
      }
     }
     ff.Close();
     SetFileAttributes(sPath,   FILE_ATTRIBUTE_NORMAL);
     if (!strcmp(sPath,sDirName))
     {
      return;
     }
     RemoveDirectory(sPath);
    }

  • 相关阅读:
    【F#】 WebSharper框架
    【F#】 入门代码
    【F#】核心数据多线程处理的首选
    【Jetlang】一个高性能的Java线程库
    【项目管理】 并发服务设计的三种架构
    【Go】为什么用go; Golang Erlang 前世今生
    【Go】 http webserver
    Arcane Numbers 1
    给定4根长度的线段,求组成四边形的最大面积
    #410div2D. Mike and distribution
  • 原文地址:https://www.cnblogs.com/wi100sh/p/4319501.html
Copyright © 2011-2022 走看看