乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 80|回复: 5

VBScript删除文件夹和文件

[复制链接]

58

主题

3353

帖子

33

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1761
发表于 2008-12-2 12:14:53 | 显示全部楼层 |阅读模式
所有,
我在网上找到了这个删除文件和文件夹的代码,并对其进行了一些修改以满足我的需求。我的问题是,如何将其变成一个函数,我可以为其提供路径并告诉它删除文件夹的深度?
当我尝试向fldname提供路径时,我得到了一个错误“预期文字常量”
  1. const fldname = "D:\Garbage"
  2. set fso = createobject("scripting.filesystemobject")
  3. set fldr = fso.getfolder(fldname)
  4. recurse fldr  
  5. sub recurse(byref fldr)
  6.         dim subfolders,files,folder,file
  7.         set subfolders = fldr.subfolders
  8.         set files = fldr.files
  9.         for each file in files
  10.                 on error resume next
  11.                 file.Delete
  12.         next  
  13.         for each folder in subfolders
  14.                 recurse folder
  15.                 If UBound(Split (folder.path, "")) > 2 Then
  16.                     folder.Delete
  17.                 End If
  18.         next   
  19.         set subfolders = nothing
  20.         set files = nothing
  21. end Sub

本帖以下内容被隐藏保护;需要你回复后,才能看到!

游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

85

主题

404

帖子

7

银币

中流砥柱

Rank: 25

铜币
751
发表于 2008-12-2 13:28:38 | 显示全部楼层
fldname是一个常量吗?
尝试将其设置为变量:
...
dim fldname as string
fldname = foldername
...
回复

使用道具 举报

58

主题

3353

帖子

33

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1761
发表于 2008-12-2 14:11:43 | 显示全部楼层
这给了我一个语法错误...我认为递归是被打破的原因...
回复

使用道具 举报

58

主题

3353

帖子

33

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1761
发表于 2008-12-2 14:36:21 | 显示全部楼层
正在尝试删除给定的文件夹及其下的所有子文件夹? 可能是你喂它5,有6深,还是基于0,你说5,而你应该说4
回复

使用道具 举报

58

主题

3353

帖子

33

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1761
发表于 2008-12-2 15:11:56 | 显示全部楼层
我正在尝试删除所有子文件夹,但指定路径正下方的子文件夹除外。它是从零开始的。
该例程在独立运行时工作正常...当我尝试将其转换为可以接受路径和嵌套数字作为变量的函数时,它会在那里爆炸吗?
回复

使用道具 举报

58

主题

3353

帖子

33

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1761
发表于 2008-12-2 16:15:48 | 显示全部楼层
我让它工作
  1. Function deletefilesandfolders (foldername, deep)
  2.         dim fso,fldr
  3.         set fso = createobject("scripting.filesystemobject")
  4.         set fldr = fso.getfolder(foldername)
  5.         deep = UBound(Split (foldername, "")) + deep
  6.         recurse fldr, deep
  7.         Set fso = Nothing
  8.         Set fldr = Nothing
  9. End Function
  10. Sub recurse(byref fldr, deep)
  11.         dim subfolders,files,folder,file
  12.         set subfolders = fldr.subfolders
  13.         set files = fldr.files
  14.         for each file in files
  15.                 on error resume next
  16.                 file.Delete
  17.         next  
  18.         for each folder in subfolders
  19.                 recurse folder, deep
  20.                 If UBound(Split (folder.path, "")) > deep Then
  21.                     folder.Delete
  22.                 End If
  23.         next   
  24.         set subfolders = nothing
  25.         set files = nothing
  26. End Sub
  27. deletefilesandfolders "d:\garbage", 0 '0==delete all subfolders . 1==leave subfolders 1 deep . 2==leave subfolders 2 deep...and so on...
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-7-4 16:06 , Processed in 0.295616 second(s), 65 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表