zoukankan      html  css  js  c++  java
  • vc++基础班[23]---文件夹的基本操作

     
    ①、文件夹的创建:CreateDirectory
    ※※※ 注意:此函数只能创建一层目录,比如想在 C 盘下的 Temp 目录下创建新目录为:123
    那么前提是 Temp 这个目录存在才可以!
     
    ②、文件夹的删除:RemoveDirectory
    ※※※ 注意:此函数只能删除一个空的目录,如果目录中有子目录或子文件的话会删除失败的!
    解决的方法是用 递归的思想,调用上节课给大家讲解的文件删除函数将子文件删除,之后就可以调用此函数删除一个空的文件夹了;
     
    ③、文件夹属性信息的获取:GetFileAttributes
     
    ④、文件和文件夹的遍历操作:(※ 本节课的重点 ※)
    MFC 中对文件的遍历操作所支持的类是:CFileFind
     
    ⑤、相关示例代码,实现删除非空目录:
    BOOL DeleteTargetFolder(LPCTSTR lpstrPath)
    {
     CString strRootPath(lpstrPath);
     if (strRootPath[strRootPath.GetLength()-1] != '\')
      strRootPath = strRootPath + _T("\");
     
     CFileFind mFinder;
     BOOL bFind = mFinder.FindFile(strRootPath + _T("*.*"), 0); //如果指定文件类型的话,只能在本目录中遍历
     while (bFind){
      bFind = mFinder.FindNextFile();
      if (mFinder.IsDots()){
       continue;
      }else{
       if (mFinder.IsDirectory()){
        //目标是目录
        DeleteTargetFolder(mFinder.GetFilePath());
       }else{
        //目标是文件
        DeleteFile(mFinder.GetFilePath());
       }
      }
     }
     mFinder.Close();
     RemoveDirectory(strRootPath); //一定要放在 mFinder.Close(); 的下面,否则删除失败,提示文件夹正被使用中
     
     return TRUE;
    }
     
    ★ 给大家留一个小作业,当文件夹内部存在只读属性的文件时,如何删除掉此非空目录呢?
    ★ SHFileOperation 大家有时间看看这个函数的使用!
    ★ 完成 FileEnumer 文件枚举器的功能!
     
  • 相关阅读:
    Django之使用内置函数和celery发邮件
    Django之FBV和CBV的用法
    使用xampp将angular项目运行在web服务器
    Django之使用中间件解决前后端同源策略问题
    Spring cloud Feign 调用端不生效
    进程同步——哲学家进餐问题Java实现
    数据库事务四大特性、隔离级别
    B树 B+树 红黑树
    SpringCloud Config Bus webhook 只能刷新config server 不能刷新config client
    Java8 容器类详解
  • 原文地址:https://www.cnblogs.com/liaocheng/p/4243374.html
Copyright © 2011-2022 走看看