Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 8415|回复: 36

如何删除同目录下的所有空文件夹

[复制链接]
发表于 2008-2-14 16:50 | 显示全部楼层 |阅读模式
本帖最后由 爱疯 于 2013-4-2 10:44 编辑 <br /><br /><P>如题: 如何删除同目录下的所有空文件夹?? 这个问题有点难哦</P>
<P>谁来完成这个小程序, 最优答案奖励8个金币.</P>
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2008-2-14 16:58 | 显示全部楼层
回复

使用道具 举报

发表于 2008-2-14 17:09 | 显示全部楼层

<p>写不出来,抄一段倒是可以!</p>[em04]
回复

使用道具 举报

发表于 2008-2-14 17:32 | 显示全部楼层

不会,学习中
回复

使用道具 举报

发表于 2008-2-14 17:59 | 显示全部楼层

关注学习中![em02]
回复

使用道具 举报

发表于 2008-2-14 18:34 | 显示全部楼层

<p>这个对不:</p><p>Sub aa()<br/>&nbsp; Set fs = CreateObject("Scripting.FileSystemObject")<br/>&nbsp; folderspec = "d:\123"&nbsp;&nbsp; '待删文件夹<br/>&nbsp; Set f = fs.GetFolder(folderspec) '得到folderspec文件夹相关的folder对象<br/>&nbsp; Set fc = f.SubFolders '得到folder对象所包含的文件夹的folder集合<br/>&nbsp; For Each fi In fc '访问folder集合中的每一个folder<br/>&nbsp;&nbsp;&nbsp; If fi.Size = 0 Then fi.Delete&nbsp;&nbsp;&nbsp;'为空则删除<br/>&nbsp; Next<br/>End Sub</p>
回复

使用道具 举报

发表于 2008-2-14 18:37 | 显示全部楼层

<p>占位来拉!</p>
回复

使用道具 举报

 楼主| 发表于 2008-2-14 18:40 | 显示全部楼层

<div class="msgheader">QUOTE:</div><div class="msgborder"><b>以下是引用<i>青城山苦丁茶</i>在2008-2-14 18:34:00的发言:</b><br/><p>这个对不:</p><p>Sub aa()<br/>&nbsp; Set fs = CreateObject("Scripting.FileSystemObject")<br/>&nbsp; folderspec = "d:\123"&nbsp;&nbsp; '待删文件夹<br/>&nbsp; Set f = fs.GetFolder(folderspec) '得到folderspec文件夹相关的folder对象<br/>&nbsp; Set fc = f.SubFolders '得到folder对象所包含的文件夹的folder集合<br/>&nbsp; For Each fi In fc '访问folder集合中的每一个folder<br/>&nbsp;&nbsp;&nbsp; If fi.Size = 0 Then fi.Delete&nbsp;&nbsp;&nbsp;'为空则删除<br/>&nbsp; Next<br/>End Sub</p></div><p>加上变量声明: </p><p>Sub aa()<br/>Dim fs As Object<br/>Dim fc As Object<br/>Dim fi As Object<br/>Dim f As Object<br/>Dim folderspec As String<br/>&nbsp; Set fs = CreateObject("Scripting.FileSystemObject")<br/>&nbsp; folderspec = ThisWorkbook.Path &amp; "\"&nbsp;&nbsp; '待删文件夹<br/>&nbsp; Set f = fs.GetFolder(folderspec) '得到folderspec文件夹相关的folder对象<br/>&nbsp; Set fc = f.SubFolders '得到folder对象所包含的文件夹的folder集合<br/>&nbsp; For Each fi In fc '访问folder集合中的每一个folder<br/>&nbsp;&nbsp;&nbsp; If fi.Size = 0 Then fi.Delete&nbsp;&nbsp; '为空则删除<br/>&nbsp; Next fi<br/>End Sub </p><p><font color="#141485">功能可以实现,就是稍有些复杂.</font></p>
回复

使用道具 举报

 楼主| 发表于 2008-2-14 18:42 | 显示全部楼层

用dir和RmDir语句试试
回复

使用道具 举报

发表于 2008-2-14 19:21 | 显示全部楼层

<p>那这样吧:</p><p>Sub my()<br/>On Error Resume Next<br/>myname = Dir("d:\123\*", vbDirectory)&nbsp;&nbsp;&nbsp; ' 找寻第一项。<br/>Do While myname &lt;&gt; ""&nbsp;&nbsp;&nbsp; ' 开始循环。<br/>&nbsp;&nbsp;&nbsp; If InStr(1, myname, ".") &lt; 1 Then&nbsp; ' 跳过当前的目录及上层目录、文件<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If GetAttr("d:\123\" &amp; myname) = 16 Then RmDir "d:\123\" &amp; myname&nbsp;&nbsp; '判断是为了跳过不带拓展名的文件。删除目录,当目录不为空时自动跳过<br/>&nbsp;&nbsp;&nbsp; End If<br/>&nbsp;&nbsp;&nbsp; myname = Dir&nbsp;&nbsp;&nbsp; ' 查找下一个目录。<br/>Loop<br/>End Sub</p>
回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-19 21:55 , Processed in 0.590619 second(s), 4 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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