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 文件枚举器的功能!
     
  • 相关阅读:
    redis info详解
    redis数据类型-有序集合
    redis数据类型-集合类型
    redis数据类型-列表类型
    python——井字小游戏
    python——元组和字典学习笔记
    docker学习笔记
    中型公司网络架构拓扑与详解
    python——将图片转换为字符编码(linux版的)
    python——冒泡排序练习
  • 原文地址:https://www.cnblogs.com/liaocheng/p/4243374.html
Copyright © 2011-2022 走看看