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);
    }

  • 相关阅读:
    [js对象]JS入门之Date对象
    从Microsoft SqlServer 2005中返回有一定顺序的记录集
    [js对象]JS入门之Global对象
    [JS.IntelliSense]VS2008(Orcas) So Cool
    即插即用插件式框架的程序集处理遐想(TypeFinder)
    [C#3.0体验]Orcas中内置的LinQ,XLinQ[DLinQ]扩展方法
    [ASP.NET入门]页面生命周期
    [IE]IE6&IE7运行于同一个系统中
    [js对象]JS入门之Boolean&Object对象
    RSS(Really Simple Syndication)常用标签
  • 原文地址:https://www.cnblogs.com/wi100sh/p/4319501.html
Copyright © 2011-2022 走看看