设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 3912|回复: 5
打印 上一主题 下一主题

[模块/函数] 【Access小品】分解问题--删除空文件夹示例

[复制链接]
跳转到指定楼层
1#
发表于 2014-7-1 16:01:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

  今日里有一版友问关于考核天数计算的问题,她说了很多种情况,描述的异常混乱,在她急切的想把问题说清楚的过程中,我很快明白了问题所在。她说的所谓考核,实际上包含了考勤和在岗工作情况考核两个部分,由于她所在的企业习惯上都称之为考核,所以便混为一谈了。这两个部分在时间的度量上是不一样的,当然这两个考核时间上有一定的依赖关系。至于怎么解答她的问题在此不论,以这个问题想要说明的是,但凡遇到问题,首先要尝试着对问题进行分解和分类。只有善于分解问题,才可能善于解决问题。否则,胡子眉毛一把抓,当然也就无法下手去解决问题了。

  论坛中有一个版友问如何删除空文件夹?对于这个问题就需要进行问题的分解。我们来看看会有些什么样的情形:首先当然是从最简单直观的说起,一个文件夹中没有子文件夹也不包含文件,这显然是一个空文件夹。如果仅仅是这样一种简单的情况,大可不必专门写一个程序去处理它。通常情况下,我们会想要对这样一个现实的情况进行处理--就是给定一个文件夹地址,然后在这个文件夹中找到它内部存在的所有空文件夹,然后去删除它们。所以,所谓“删除空文件夹”这个问题,需要分解为:1、删除空文件夹;2、删除给定非空文件夹中的所有为空的子文件夹;3、当所有子文件夹皆空时,删除父文件夹。

  这样一分解,问题立刻了然,仿佛乾坤朗朗一般。剩下的只是怎么来综合性地解决三个问题而已,于是乎下面的示例便告诉你一种解决的思路,代码太简单,讲解起来寡然无味,同志们自己去看便可以了。



Public Sub DeleteNullFolder(ByVal path As String)
    '功能:删除空文件夹
    '引用:Microsoft Scripting Runtime
    Dim fso As New FileSystemObject
    Dim fld As Folder
    Dim subfld As Folder

    If fso.FolderExists(path) = True Then
        Set fld = fso.GetFolder(path)
        If fld.SubFolders.Count = 0 And fld.Files.Count = 0 Then '无子文件夹和文件
            fld.Delete
        Else
            If fld.SubFolders.Count > 0 Then  '遍历子文件夹并递归,删除其中的空文件夹
                For Each subfld In fld.SubFolders
                    Call DeleteNullFolder(subfld.path)  '递归
                Next
            End If
            If fld.SubFolders.Count = 0 And fld.Files.Count = 0 Then '经过删除子文件夹后,再判断是否为空文件夹
                fld.Delete
            End If
        End If
    End If

    Set fso = Nothing
    Set fld = Nothing
    Set subfld = Nothing
End Sub


示例:

视图:



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

本帖被以下淘专辑推荐:

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享分享 分享淘帖1 订阅订阅
2#
发表于 2014-7-2 12:23:23 | 只看该作者
谢谢分享!
回复

使用道具 举报

3#
发表于 2015-7-20 12:53:30 | 只看该作者
学习学习
回复

使用道具 举报

4#
发表于 2015-7-20 12:53:54 | 只看该作者
学习学习
回复

使用道具 举报

5#
发表于 2016-8-20 16:05:46 | 只看该作者
已经阅读,谢谢

点击这里给我发消息

6#
发表于 2019-4-25 10:23:24 | 只看该作者
谢谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-10 12:45 , Processed in 0.092924 second(s), 33 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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