• 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 文件枚举器的功能!
     
  • 相关阅读:
    北京 到 娄底 灌湄
    AVR--IO设置编程
    AVR--I/O端口寄存器
    AVR--IO结构分析
    虚拟机VM下 UBUNTU 下安装Mantis
    Windows环境下Mantis搭建概述
    SW4STM32 : Error message from debugger back end: Error erasing flash with vFlashErase packet Error erasing flash with vFlashErase packet
    三极管驱动继电器详解
    STM32 Bootloader 跳转到App
    (转载) STM32IAP升级---IAP升级功能编写初期的一些困惑与疑问---完成功能后的总结
  • 原文地址:https://www.cnblogs.com/liaocheng/p/4243374.html
Copyright © 2020-2023  润新知