乐筑天下

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

用于删除文件夹和文件的VBScript

[复制链接]

58

主题

3353

帖子

33

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1761
发表于 2008-12-2 12:14:53 | 显示全部楼层 |阅读模式
总之,
我在网上找到了删除文件和文件夹的代码,并对其进行了一些修改以满足我的需要。我的问题是,我如何把它变成一个函数,我可以给它一个路径,并告诉它删除文件夹的深度
当我试图给fldname提供一条路径时,我得到了一个错误;预期文字常量“
  1. Function deletefilesandfolders (foldername, deep)
  2.         const fldname = foldername
  3. ....
  4. If UBound(Split (folder.path, "")) > deep Then
  5. ....
  6. End Function
  7. deletefilesandfolders ("C:\Documents and Settings\%username%\Desktop\testdel2", 5)
  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是常数吗
尝试将其设置为变量:
..
将fldname设置为字符串。。。
回复

使用道具 举报

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 17:32 , Processed in 0.308646 second(s), 65 queries .

© 2020-2025 乐筑天下

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