VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

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

[已解决] VC驿站-(23)-文件夹的基本操作 里面代码的一个问题

[复制链接]
51_avatar_middle
online_vip zxnnnnn 发表于 2018-2-2 22:08:26 | 显示全部楼层 |阅读模式
本帖最后由 zxnnnnn 于 2018-2-5 08:16 编辑

标识红色字体的是不理解的部分


BOOL DeleteTargetFolder(LPCTSTR lpstrPath)
{
        CString strRootPath(lpstrPath);
        if (strRootPath[strRootPath.GetLength()-1] != '\\')         \\不理解这里面的strRootPath后面加[] 这个方括号是什么问题,我去查了CString的用法,没有看到CString对象加方括号的用法,求解这句话什么意思呢?
                strRootPath = strRootPath + _T("\\");

CFileFind mFinder;
        BOOL bFind = mFinder.FindFile(strRootPath + _T("*.*"), 0); //这句话的意思是理解的,如果在strRootPath这个路径下有文件或者夹的话,bFind返回值是1
        while (bFind){
                bFind = mFinder.FindNextFile();   // 如果里面文件的话,则bFind返回1
                if (mFinder.IsDots()){                     //不理解这里面返回的是C:\123.txt\.   第二次返回的是C:\123.txt\..  是什么意思,为什么是这样遍历的呢?
                        continue;




上一篇:VC++基础班 17对话框的菜单操作 作业
下一篇:请问vs2017mfc类库中没有CMenu基类,请问怎么办?谢谢!

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

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

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

01_avatar_middle
online_admins admin 发表于 2018-2-2 23:40:42 | 显示全部楼层
这个方括号是 CString 重载了 [] 操作符哦,是操作符的重载!

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

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

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

回复 支持 反对

使用道具 举报

51_avatar_middle
ico_lz  楼主| zxnnnnn 发表于 2018-2-3 00:04:55 来自手机 | 显示全部楼层
admin 发表于 2018-2-2 23:40
这个方括号是 CString 重载了 [] 操作符哦,是操作符的重载!

老大,我试着百度了一下资料,没有找到关于CString重载方括号[]这部分的说明,能详细说说吗?或者能给我一个链接,我自己再学习学习吗?麻烦了。

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

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

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

回复 支持 反对

使用道具 举报

94_avatar_middle
在线会员 tym111 发表于 2018-2-3 10:43:54 | 显示全部楼层
本帖最后由 tym111 于 2018-2-3 10:48 编辑

if (strRootPath[strRootPath.GetLength()-1] != '\\')   这个就是判断strRootPath是不是已“\”结尾
                if (mFinder.IsDots())  这里返回会变是因为  bFind = mFinder.FindNextFile();    这里调用后会找下一个文件

C:\123.txt\.
C:\123.txt\..

这里的 . 是代表当前目录  ..是代表上一级目录   

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

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

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

回复 支持 反对

使用道具 举报

01_avatar_middle
online_admins admin 发表于 2018-2-3 21:58:00 | 显示全部楼层
zxnnnnn 发表于 2018-2-3 00:04
老大,我试着百度了一下资料,没有找到关于CString重载方括号[]这部分的说明,能详细说说吗?或者能给我 ...


这里有说明:
https://msdn.microsoft.com/en-us/library/aa315043(v=vs.60).aspx

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

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

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

回复 支持 反对

使用道具 举报

51_avatar_middle
ico_lz  楼主| zxnnnnn 发表于 2018-2-4 06:56:40 来自手机 | 显示全部楼层
admin 发表于 2018-2-3 21:58
这里有说明:
https://msdn.microsoft.com/en-us/library/aa315043(v=vs.60).aspx

看到了,谢谢老大

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

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

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

回复 支持 反对

使用道具 举报

51_avatar_middle
ico_lz  楼主| zxnnnnn 发表于 2018-2-5 08:16:12 | 显示全部楼层
tym111 发表于 2018-2-3 10:43
if (strRootPath[strRootPath.GetLength()-1] != '\\')   这个就是判断strRootPath是不是已“\”结尾
     ...

在网上也找到了,非常感谢,您的提示。
  IsDots()) 判断目录是否为“.”或".."

在dos中每个目录下都有缺省的两个目录分别为"."和".."分别表示上一层目录和本层目录.

因此当我们遍历目录树下的文件时要过滤掉这两个缺省目录。

每个文件夹都有下面两个特殊子文件夹:
      (1) .    表示本文件夹自己
      (2) ..   表示本文件夹的父文件夹
      显然,在文件夹遍历的时候,这两个子文件夹需要特殊处理,否则将陷入死循环。

IsDots():就是判断是不是这两个文件夹的一个.

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

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

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

回复 支持 反对

使用道具 举报

51_avatar_middle
ico_lz  楼主| zxnnnnn 发表于 2018-2-5 08:21:22 | 显示全部楼层
http://bbs.csdn.net/topics/330060836

调用FindFile,只是用于得到第一个文件的位置(POSITION)
FindNextFile函数可以返回第一个文件的信息,并且将参数移动到下一个文件的位置
所以不是什么从第二个文件开始。
其实在CListCtrl等其它一些类中,也有类似的函数组合来获取多选信息。

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

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

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

回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

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

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

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

GMT+8, 2018-10-22 19:17

Powered by Discuz! X3.4

© 2009-2018 cctry.com

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