VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

有编程疑问吗?还请到提问专区发帖提问!
搜索
查看: 302|回复: 1

VC++基础班-[23]文件夹的基本操作

[复制链接]
01_avatar_middle
online_admins admin 发表于 2018-2-1 00:33:04 | 显示全部楼层 |阅读模式
------------------------------------------ Begin ----------------------------------------
①、文件夹的创建:CreateDirectory
※※※ 注意:此函数只能创建一层目录,比如想在 C 盘下的 Temp 目录下创建新目录为:123
那么前提是 Temp 这个目录存在才可以!

②、文件夹的删除:RemoveDirectory
※※※ 注意:此函数只能删除一个空的目录,如果目录中有子目录或子文件的话会删除失败的!
解决的方法是用 递归的思想,调用上节课给大家讲解的文件删除函数将子文件删除,之后就可以调用此函数删除一个空的文件夹了;

③、文件夹属性信息的获取:GetFileAttributes

④、文件和文件夹的遍历操作:(※ 本节课的重点 ※)
MFC 中对文件的遍历操作所支持的类是:CFileFind

⑤、相关示例代码,实现删除非空目录:
  1. BOOL DeleteTargetFolder(LPCTSTR lpstrPath)
  2. {
  3.         CString strRootPath(lpstrPath);
  4.         if (strRootPath[strRootPath.GetLength()-1] != '\\')
  5.                 strRootPath = strRootPath + _T("\");

  6.         CFileFind mFinder;
  7.         BOOL bFind = mFinder.FindFile(strRootPath + _T("*.*"), 0); //如果指定文件类型的话,只能在本目录中遍历
  8.         while (bFind){
  9.                 bFind = mFinder.FindNextFile();
  10.                 if (mFinder.IsDots()){
  11.                         continue;
  12.                 }else{
  13.                         if (mFinder.IsDirectory()){
  14.                                 //目标是目录
  15.                                 DeleteTargetFolder(mFinder.GetFilePath());
  16.                         }else{
  17.                                 //目标是文件
  18.                                 DeleteFile(mFinder.GetFilePath());
  19.                         }
  20.                 }
  21.         }
  22.         mFinder.Close();
  23.         RemoveDirectory(strRootPath); //一定要放在 mFinder.Close(); 的下面,否则删除失败,提示文件夹正被使用中

  24.         return TRUE;
  25. }
复制代码


★ 给大家留一个小作业,当文件夹内部存在只读属性的文件时,如何删除掉此非空目录呢?
★ SHFileOperation 大家有时间看看这个函数的使用!
★ 完成 FileEnumer 文件枚举器的功能!
------------------------------------- End -------------------------------------------
相关课程演示细节还请观看视频教程!
本套教程由VC驿站原创,提供视频教程+售后答疑服务!
教程介绍及详情请见:http://www.cctry.com/thread-17282-1-1.html
VC驿站Vip会员详情请见:http://www.cctry.com/static/vip/index.html




上一篇:VC++基础班-[22]文件的基本操作2
下一篇:VC++基础班-[24]系统各种路径信息的获取

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

关闭

站长提醒上一条 /1 下一条

QQ
QQ在线咨询
联系电话
13591366679
手机扫一扫 关注本站精彩内容
wxqrcode

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号tongdun|网站地图wx_jqr

GMT+8, 2018-10-21 21:34

Powered by Discuz! X3.4

© 2009-2018 cctry.com

快速回复 返回顶部 返回列表