ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > E问E答 > Excel VBA > 如何用VBA代码删除U盘中及其子文件夹下所有文本文件?

如何用VBA代码删除U盘中及其子文件夹下所有文本文件?

作者:绿色风 分类: 时间:2022-08-17 浏览:94
楼主
amulee
Q:如何用VBA代码删除U盘中及其子文件夹下所有文本文件?
A:参考以下递归代码,请运行KillUDiskTxt过程。
  1. Sub KillUDiskTxt()
  2.     Dim fso As Object
  3.     Dim Drv As Object
  4.     Set fso = CreateObject("Scripting.FilesystemObject")
  5.     '查找U盘盘符
  6.     For Each Drv In fso.Drives
  7.         If Drv.DriveType = 1 Then
  8.             '找到U盘执行删除程序
  9.             KillTxt Drv.Path
  10.         End If
  11.     Next
  12. End Sub
  13. Sub KillTxt(ByVal strFolder As String)
  14.     Dim fso, objFolder, colFiles, colSubFolders, objSubFolder, objFile
  15.     Set fso = CreateObject("Scripting.FileSystemObject")
  16.     Set objFolder = fso.GetFolder(strFolder)
  17.     Set colFiles = objFolder.Files  '得到所有的文件
  18.     Set colSubFolders = objFolder.SubFolders    '得到所有子文件夹
  19.     '如果有子文件夹,则通过递归遍历子文件夹
  20.     If colSubFolders.Count > 0 Then
  21.         For Each objSubFolder In colSubFolders
  22.             Call KillTxt(objSubFolder.Path)
  23.         Next
  24.     End If
  25.     '如果文件不为0,则遍历所有文件,输出结果
  26.     If colFiles.Count > 0 Then
  27.         For Each objFile In colFiles
  28.             '删除文本文件
  29.             If Right(objFile.Path, 4) = ".txt" Then
  30.                 Kill objFile.Path
  31.             End If
  32.         Next
  33.     End If
  34. End Sub
2楼
amulee
以下为K哥的代码,用简单的DOS指令替代了复杂的递归
  1. Sub KillUDiskTxt()
  2.     Dim fso As Object
  3.     Dim Drv As Object
  4.     Set fso = CreateObject("Scripting.FilesystemObject")
  5.     '查找U盘盘符
  6.     For Each Drv In fso.Drives
  7.         If Drv.DriveType = 1 Then
  8.             '找到U盘执行删除指令
  9.             CreateObject("wscript.shell").Run Environ("comspec") & " /c del " & Drv.Path & "\*.txt /f/s/q", 0, 1
  10.         End If
  11.     Next
  12. End Sub
3楼
水星钓鱼
递归好,K哥的代码还需要领悟
4楼
wise
不错

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap